如何获取 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)

第三个参数指定您在数组内的文档内搜索,而不是标量值。