0

このドキュメントがあるとしましょう:

doc = {'foo': 1, 'bar': 2, id: 123}

foo と bar の値のペア、id を持ち、これらを 2 つの変数に割り当てるにはどうすればよいですか? これは、同じ正確な reql コマンドを複数回コピー/ペーストすることなく、複雑なクエリ内でこれらの変数を使用できるようにするために必要です。

これは私が試したものです:

(
    r.expr(doc) # doc as input
    .do(lambda d: [
        # create the pair
        [d['id'], r.uuid(d['id'].coerce_to('string'))],
        # create the "values"
        d.without('id').values()
    ])
    .do(lambda x, y:  # unpacking should happen here
        # x should be the pair
        # y should be the values of foo and bar

        r.branch(
            # do something with x,
            # use y here,
            ...)
    )
    .map(lambda z:
        # use also x and y here
        # etc...
    .run(conn)
)

しかし、私はこれを機能させることはできません。アイデアは、読みやすくするために、クエリ内で使用される変数に値を割り当てることです。アイデア?

4

1 に答える 1

1

を使用して ReQL で複数の変数をバインドできます。r.do次に例を示します。

r.expr(doc).do(lambda d: # doc as input
  r.do(
    [d['id'], r.uuid(d['id'].coerce_to('string'))],
    d.without('id').values(),
    lambda x, y:
      # x is the pair
      # y is the values of bar and foo
      ...))
于 2016-05-22T21:34:27.303 に答える