Couchbase N1qlQuery:使用 select 中的键值

Couchbase N1qlQuery: use key value from select

我有以下疑问:

select otherDocKey from bucket use keys '1234'
update bucket use keys 'hear I need the result of the first query' set ...

我想做这样的事情:

update bucket use keys (select otherDocKey from bucket use keys '1234') set kuku = 3

但我得到的回复是:

[ { "code": 5030, "msg": "Missing or invalid primary key map[otherDocKey:\"56443\"] of type map[string]interface {}." } ]

有没有办法在一个查询中做到这一点?

我正在使用 couchbase 4.5 版

您的查询的问题是嵌套子查询 return 是 json 结果。即,查询:

select otherDocKey from bucket use keys '1234'

将 return 结果如下所示:

{"otherDocKey":"This_is_the_key_for_the_other_doc"}

但您不需要 json,您只需要 json 中的值。为此,您需要使用 'select raw'。例如,

select raw otherDocKey from bucket use keys '1234'

这应该会给你一个看起来像这样的结果:

["This_is_the_key_for_the_other_doc"]

当子查询return出现这种结果时,"use keys"应该可以正常工作。