DocumentDB 查询嵌套对象

DocumentDB query nested object

我在查询 DocumentDB 中的嵌套对象时遇到问题。我无法控制数据的格式。假设一个对象在 DocumentDB 中看起来像这样:

{
    "SCHEMA_ID": {
        "PROJECT": "A",
        "MODEL": "B",
        "GUID":"A GUID"
    },
    "STATE": {
        "Active": "True"
    },
    "OBJECTS": {
        "OBJECT": [
            {
                "ATTR_VALS": {
                    "NAME": "Header",
                    "ID": "0",
                    "VALUE": [
                        {
                            "NAME": "JobId",
                            "VAL": "1011656"
                        },
                        {
                            "NAM": "Region",
                            "VAL": "West Coast"
                        }
                    ]
                }
            },
            {
                "ATTR_VALS": {
                    "NAME": "SampleData",
                    "ID": "0",
                    "VALUE": [
                        {
                            "NAME": "Height",
                            "VAL": "5"
                        },
                        {
                            "NAM": "Length",
                            "VAL": "3"
                        }
                    ]
                }
            }
        ]
    }
}

我想找到所有具有 'ATTR_VALS' = 'SampleData' 并且这些项目具有 'Height'=5

的对象

到目前为止我有:

SELECT test.GUID
FROM test
join OBJECTS in test.OBJECTS
join OBJECT in OBJECTS
join ATTR_VALS in OBJECT
join VALUE in ATTR_VALS
WHERE ATTR_VALS.NAME = 'SampleData' AND VALUE.NAME='Height' AND   VALUE.VAL='5'

但这不起作用,returns没有结果。谢谢!

查询必须是:

SELECT test.SCHEMA_ID.GUID
FROM test
join OBJ in test.OBJECTS.OBJECT
join VAL in OBJ.ATTR_VALS["VALUE"]
WHERE OBJ.ATTR_VALS.NAME = "SampleData" AND VAL.NAME='Height' AND VAL.VAL='5'

我改变了几件事:

  • JOIN 必须针对数组而不是对象执行。可以使用“.”扩展对象。运算符
  • VALUE 是特殊关键字,必须转义
  • 缺少投影子句中的小错字SCHEMA_ID