在这种情况下,文档如下所示:
{
"id" : "1",
"Properties" : [
{
"Name" : "Leonard",
"Result" : "Pass",
"Grade" : "A"
},
{
"Name" : "Sheldon",
"Result" : "Pass",
"Grade" : "A"
},
{
"Name" : "Raj",
"Result" : "Fail",
"Grade" : "F"
},
{
"Name" : "Howard",
"Result" : "Pass",
"Grade" : "B"
}
]
}
我想编写一个查询,该查询返回带有"Result" : "Pass"
的元素。我已经尝试过ARRAY_CONTAINS()
和查询
SELECT * FROM d as c WHERE ARRAY_CONTAINS(c.Result, {"Result" : "Pass"}, true)
查询的问题在于,它可以在数组中找到"Result": "Pass"
,因此返回了整个数组。我应该如何修改或更改查询,以使结果仅包含具有"Result": "Pass"
的数组元素。
答案 0 :(得分:1)
您只需要选择Properties
SELECT c.Properties[0] as Result
FROM c
JOIN tag IN c.Properties
WHERE tag.Result = "Pass"
答案 1 :(得分:0)
尝试执行此查询,该查询将返回ID,并且仅返回Properties数组中的匹配项。
SELECT d.id, property
FROM d JOIN property IN d.properties
WHERE property.Result= "Pass"