N1QL 检查数组是否包含id
N1QL Check if the array contains id
我有一个文件叫做
player::id
每个玩家。其中 id 是玩家的 id(自动递增)。
如何 运行 在下面的数组上搜索操作,例如检查 ID 或计数?该数组存储在玩家的存档文件中。
"inventory": {
"0": {
"count": 1,
"id": 6
},
"1": {
"count": 1,
"id": 13
},
"2": {
"count": 1,
"id": 142
},
"3": {
"count": 1,
"id": 144
}
},
您发布的对象中没有ARRAY。
如果您希望搜索 ID 13 出现在文档中并获得相应的计数,您可以使用 OBJECT_PAIRS() 函数将动态对象转换为 ARRAY https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/objectfun.html
SELECT op.val.id, op.val.count, op.name AS pos
FROM default AS d
UNNEST OBJECT_PAIRS(d.inventory) AS op
WHERE op.val.id = 13
或
SELECT d.*
FROM default AS d
WHERE ANY op IN OBJECT_PAIRS(d.inventory) SATISFIES op.val.id = 13 END;
我有一个文件叫做
player::id
每个玩家。其中 id 是玩家的 id(自动递增)。
如何 运行 在下面的数组上搜索操作,例如检查 ID 或计数?该数组存储在玩家的存档文件中。
"inventory": {
"0": {
"count": 1,
"id": 6
},
"1": {
"count": 1,
"id": 13
},
"2": {
"count": 1,
"id": 142
},
"3": {
"count": 1,
"id": 144
}
},
您发布的对象中没有ARRAY。
如果您希望搜索 ID 13 出现在文档中并获得相应的计数,您可以使用 OBJECT_PAIRS() 函数将动态对象转换为 ARRAY https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/objectfun.html
SELECT op.val.id, op.val.count, op.name AS pos
FROM default AS d
UNNEST OBJECT_PAIRS(d.inventory) AS op
WHERE op.val.id = 13
或
SELECT d.*
FROM default AS d
WHERE ANY op IN OBJECT_PAIRS(d.inventory) SATISFIES op.val.id = 13 END;