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"应该可以正常工作。
我有以下疑问:
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"应该可以正常工作。