使用 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成本太高,可以在客户端进行改造
我正在尝试查询嵌入的文档以获得如下结果:
文件:
{
"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成本太高,可以在客户端进行改造