次のようなドキュメントのセットがあります。
[
{
"Name": "Document1",
"Properties": {
"Property1": [
"Value1",
"Value2",
"Value3",
]
},
"Tags": null
},
{
"Name": "Document2",
"Properties": {
"Property1": [
"Value1",
]
},
"Tags": null
},
{
"Name": "Document3",
"Properties": {
"Property1": [
"Value1",
"Value2",
]
"Property2": [
"Value1",
]
},
"Tags": null
}
]
プロパティノード内のProperty1
配列に複数のアイテムがあるドキュメントをクエリする必要があります。上記の私の例では、Document1
とDocument3
のみが返されることを期待しています。 Array_Contains構文の実験に多くの時間を費やしましたが、不足し続けています。これが私の最新の試みがどのように見えるかです:
SELECT * FROM Docs d WHERE ARRAY_LENGTH([d.Properties, 'Property1']) > 1
しかし、私の構文では、すべてのドキュメントが返されます。
次のようなクエリが必要です。
SELECT * FROM Docs d WHERE ARRAY_LENGTH(d.Properties.Property1) > 1
DocumentDBの文法は階層的なネストされたデータに対して機能し、プログラミング言語のようにd.Properties.Property1、d.Properties.Property1 [0]などのプロパティにアクセスできることに注意してください。