こんばんは。今日は、AzureのCosmosDBのクエリ方法について学んだことを残しておきます。
それでは早速参ります。
やりたかったこと
CosmosDBのコンテナ上に、以下のようにJSONが入れ子になったデータ構造のレコードがあるとします。今回は、この入れ子部分の項目に対して検索をかけるクエリを作成したかったです。
例えば、column1中のcolumn2の値がXXXXであるレコードを全て抽出したい、といった具合です。
{
"id":"1"
.....
"column1": [
{
"id": "1",
"column2": "XXXX",
....
},
{
"id": "2",
"column2": "YYYY",
....
}
]
}
解決方法
こちらに解説がありました!
Azure Cosmos DB での JSON の使用 | Microsoft Docs
SELECT *
FROM c
WHERE EXISTS(
SELECT VALUE n
FROM n IN c.column1
WHERE n.column2 = "XXXX"
)
おしまい