DocumentDB过滤子数组中多个项目的文档

时间:2017-10-18 09:02:52

标签: sql azure-cosmosdb

我有一个Cosmos DB数据库,其中包含以下格式的文档:

{
  "Id": "1",
  "Price": 200,
  "Properties": [
    {
        "Name": "Name1",
        "Type": "Type1",            
    },
    {
        "Name": "Name2",
        "Type": "Type2",            
    }
  ]
},
{
  "Id": "2",
  "Price": 500,
  "Properties": [
    {
        "Name": "Name1",
        "Type": "Type1",            
    },
    {
        "Name": "Name2",
        "Type": "Type3",            
    }
  ]
},
{
  "Id": "3",
  "Price": 400,
  "Properties": [
    {
        "Name": "Name1",
        "Type": "Type2",            
    }
  ]
}

我想创建一个返回满足多个属性的文档的查询。例如。我想检索具有Type1和Type2属性的文档。结果应该只给我Id = 1的文档。

1 个答案:

答案 0 :(得分:3)

SELECT c.Id
FROM c
WHERE ARRAY_CONTAINS(c.Properties, {'Type': 'Type1' }, true)
AND ARRAY_CONTAINS(c.Properties, {'Type': 'Type2' }, true)