如何获取 JSON 内的嵌套字段
How to obtain nested fields within JSON
背景:
我想更新 JSON 文档中的嵌套字段。我想查询所有等于“新”的“状态”
{
"id": "123"
"feedback" : {
"Features" : [
{
"state":"new"
}
]
}
这是我尝试做的:
因为这是一个嵌套文档。我的查询如下所示:
SELECT * FROM c WHERE c.feedback.Features.state = "new"
但是,当我知道它存在于数据库中时,我总是得到零结果。我究竟做错了什么?也许我得到 0 个结果,因为特征是一个数组?
感谢任何帮助
对于数组,您需要使用 ARRAY_CONTAINS()
。例如,在您的情况下:
SELECT *
FROM c
WHERE ARRAY_CONTAINS(c.feedback.Features,{'state': 'new'}, true)
第三个参数指定您在数组内的文档内搜索,而不是标量值。
背景:
我想更新 JSON 文档中的嵌套字段。我想查询所有等于“新”的“状态”
{
"id": "123"
"feedback" : {
"Features" : [
{
"state":"new"
}
]
}
这是我尝试做的:
因为这是一个嵌套文档。我的查询如下所示:
SELECT * FROM c WHERE c.feedback.Features.state = "new"
但是,当我知道它存在于数据库中时,我总是得到零结果。我究竟做错了什么?也许我得到 0 个结果,因为特征是一个数组?
感谢任何帮助
对于数组,您需要使用 ARRAY_CONTAINS()
。例如,在您的情况下:
SELECT *
FROM c
WHERE ARRAY_CONTAINS(c.feedback.Features,{'state': 'new'}, true)
第三个参数指定您在数组内的文档内搜索,而不是标量值。