使用 where 子句查询嵌入式文档 - COSMOS SQL API

Query embedded document with where clause - COSMOS SQL API

我正在尝试查询嵌入的文档以获得如下结果:

文件:

{
    "id": "1",
    "description": "coco cola",
    "locations": [
        { "locationId": "14", "taxType" : "20", "state": "Florida" },
        { "locationId": "14", "taxType" : "22", "state": "Florida" },
        { "locationId": "16", "taxType" : "23", "state": "California" }
      ]  
},
{
    "id": "2",
    "description": "Mac & Cheese",
    "locations": [
        { "locationId": "22", "taxType" : "31", "state": "Texas" },
        { "locationId": "16", "taxType" : "23", "state": "California" }
      ]  
}

我正在尝试使用 SQL 查询来查询上述文档:

SELECT * FROM c
where c.id= "1" and ARRAY_CONTAINS(c.locations,{"locationId": "14"},true)

预期输出:(因为我们使用 where locationId = 14 我们需要忽略 locationId = 16 for Id = 1):

{
    "id": "1",
    "description": "coco cola",
    "locations": [
        { "locationId": "14", "taxType" : "20", "state": "Florida" },
        { "locationId": "14", "taxType" : "22", "state": "Florida" }
      ]  
}

ARRAY_CONTAINS 不起作用,我没有得到预期的输出,当我使用上面的查询时,它给了我空结果。如何在嵌入文档中使用 where 子句进行查询?

我认为 SQL 无法达到您的预期输出。您可以使用 UDF 并注意它的成本。如果觉得UDF成本太高,可以在客户端进行改造