2017-10-18 133 views
0

多個項目DocumentDB過濾文件我有一個宇宙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的文檔。

回答

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

第三個參數(true)的作用是什麼?我找不到有關這個論點的任何文件。 – carens

+2

第三個布爾參數用於啓用或禁用部分匹配(即,該對象的該屬性匹配,但該對象的其餘部分不需要)。它似乎沒有很好的記錄 –

+0

看到這個問題https://stackoverflow.com/questions/46794691/cosmosdb-sql-query-that-matches-multiple-values-in-an-array這是由某人直接回答來自宇宙團隊 –