DocumentDB SQL检查数组中的多个值
我正在使用Azure的DocumentDB作为我的数据库。我可能有数千个文档,希望返回包含特定标记的所有文档 例如: 文件1DocumentDB SQL检查数组中的多个值,sql,azure,azure-cosmosdb,Sql,Azure,Azure Cosmosdb,我正在使用Azure的DocumentDB作为我的数据库。我可能有数千个文档,希望返回包含特定标记的所有文档 例如: 文件1 { "id": "328732, "name": "jeff", "tags": [ "A", "B", "C" ] } 文件2 { "id": "54092, "name": "ayla", "tags": [ "B", "D", "F" ] } 文件3 { "id": "98234
{
"id": "328732,
"name": "jeff",
"tags": [
"A",
"B",
"C"
]
}
文件2
{
"id": "54092,
"name": "ayla",
"tags": [
"B",
"D",
"F"
]
}
文件3
{
"id": "98234,
"name": "lara",
"tags": [
"B",
"G",
"H"
]
}
如果我有一个标签列表[“a”、“F”、“X”]
,那么应该返回前两个文档(jeff和ayla)。
我可以通过使用内置函数ARRAY\u CONTAINS
和几个或
操作符来实现这一点:
SELECT *
FROM c
WHERE ARRAY_CONTAINS(c.groups, "A") OR
WHERE ARRAY_CONTAINS(c.groups, "F") OR
WHERE ARRAY_CONTAINS(c.groups, "X")
我想知道是否有更好的方法来实现这一点。如果我有数百个标签,我需要数百个条件 我知道没有其他方法可以实现你想要的。您可以编写代码,将自动扩展到一系列包含
或的数组。我知道没有其他方法可以实现您想要的。您可以使用或
s编写自动扩展为一系列数组的代码