0
私はデータベースとしてAzureのDocumentDBを使用しています。何千もの文書が潜在的にあり、特定のタグを含むすべての文書を返したいと思っています。例えばDocumentDB SQLは複数の値を配列でチェックします
:
文献1
{
"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"]
、最初の2つのドキュメント(jeff、およびayla)を返す必要があります。 私はいくつかのOR
オペレーターと機能ARRAY_CONTAINS
に建て使用してこれを達成することができます。これを達成するためのより良い方法があれば、私は思ったんだけど
SELECT *
FROM c
WHERE ARRAY_CONTAINS(c.groups, "A") OR
WHERE ARRAY_CONTAINS(c.groups, "F") OR
WHERE ARRAY_CONTAINS(c.groups, "X")
。何百ものタグがあれば、何百もの条件が必要になります。