将查询返回的对象嵌套为大小为 1 的数组
Nest an Object returned by query as an array of size one
我目前正在尝试从数组中查询特定对象。但是,查询的结果返回的是单个对象,而不是大小为 1 的数组(一个对象填充数组)。
我的查询:
SELECT meta(bn).id as _ID, meta(bn).cas as _CAS, bn.name
FIRST t FOR t IN properties WHEN t.id = "1111" END as property
FROM bucket-name as bn
WHERE ANY t IN attributes SATISFIES t.id = "1111" END
结果:
[
{
"_CAS": 0000,
"_ID": "1111",
"name": "my name",
"property": {
"id": "1111",
"name": "my property name"
}
}
]
我宁愿得到的是。它几乎完全相同,除了 "property" 现在是一个数组
[
{
"_CAS": 0000,
"_ID": "1111",
"name": "my name",
"property": [
{
"id": "1111",
"name": "my property name"
}
]
}
]
将 FIRST 更改为 ARRAY https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/collectionops.html
当使用 FIRST 时,当第一个元素满足且 returns 元素时,循环停止。
当使用 ARRAY 时,循环一直持续到结束,所有符合条件的元素都是 returns 作为 ARRAY(即列表)
SELECT meta(bn).id as _ID, meta(bn).cas as _CAS, bn.name
ARRAY t FOR t IN properties WHEN t.id = "1111" END AS property
FROM `bucket-name` as bn
WHERE ANY t IN attributes SATISFIES t.id = "1111" END;
我目前正在尝试从数组中查询特定对象。但是,查询的结果返回的是单个对象,而不是大小为 1 的数组(一个对象填充数组)。
我的查询:
SELECT meta(bn).id as _ID, meta(bn).cas as _CAS, bn.name
FIRST t FOR t IN properties WHEN t.id = "1111" END as property
FROM bucket-name as bn
WHERE ANY t IN attributes SATISFIES t.id = "1111" END
结果:
[
{
"_CAS": 0000,
"_ID": "1111",
"name": "my name",
"property": {
"id": "1111",
"name": "my property name"
}
}
]
我宁愿得到的是。它几乎完全相同,除了 "property" 现在是一个数组
[
{
"_CAS": 0000,
"_ID": "1111",
"name": "my name",
"property": [
{
"id": "1111",
"name": "my property name"
}
]
}
]
将 FIRST 更改为 ARRAY https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/collectionops.html 当使用 FIRST 时,当第一个元素满足且 returns 元素时,循环停止。 当使用 ARRAY 时,循环一直持续到结束,所有符合条件的元素都是 returns 作为 ARRAY(即列表)
SELECT meta(bn).id as _ID, meta(bn).cas as _CAS, bn.name
ARRAY t FOR t IN properties WHEN t.id = "1111" END AS property
FROM `bucket-name` as bn
WHERE ANY t IN attributes SATISFIES t.id = "1111" END;