2017-05-24 81 views
0

我在文檔數據庫中有一個文檔,該文檔具有屬於對象數組的屬性。我想扁平化它,並根據數組獲取所有對象中的單個屬性。在文檔db中展開文檔

如:

{ 
    "name" : "blah", 
    "address" : [ 
     { 
      "type" : "home", 
      "location" : "123 st" 
     }, 
     { 
      "type" : "work", 
      "location" : "321 st" 
     } 
    ] 
} 

- >我要什麼

[ 
    { 
     "name" : "blah", 
     "locations" : [ "123 st", "321 st" ] 
    } 

]

+0

你看過SQL語法中的JOIN運算符嗎? –

+0

@DavidMakogon Yeah看着JOIN將爲數組中的每個值創建單獨的記錄。 – Yashashwi

回答

0

你可以嘗試定義和使用User-defined function提取locations信息。

enter image description here

然後你可以從你的查詢中調用這個用戶定義的函數。

enter image description here

+0

嗯沒有想到這會嘗試使用這個過程非常感謝。 – Yashashwi

+0

剛剛意識到不認爲我可以使用這個。這是因爲要在Azure搜索索引數據源中完成展平。因此,在DocumentDb中定義的函數將無法在那裏使用,除非我可以在Azure搜索中定義相同的UDF – Yashashwi

+0

您可以將UDF提供給對Azure搜索中的數據源的查詢。 –