2016-11-20 28 views
1

內我有一個文件,看起來像這樣:內蒙古父文件加入從孩子

{ 
    "id": "some guid", 
    "name": "Bob", 
    "following": [ 
     { 
      "id": "some_guid", 
      "priority": true 
     } 
    ] 
} 

的想法是,用戶可以跟隨其他用戶。

我想要做的是,給定用戶獲取他們所關注的所有用戶的ID和名稱。該名稱不存儲在「以下」集合中。

如果我使用SQL,我會做這樣的事情:

SELECT u.following_id, u.priority, j.name FROM users INNER JOIN j on u.following_id = j.id

DocumentDb SQL中的等效項是什麼?

回答

3

DocumentDB中的等價物是做兩次往返。首先獲取包含用戶關注對象的數組的用戶文檔。然後建立一個大OR子句並用它來獲取他們關注的人的文檔。

或者,您可能希望將關係存儲在另一個方向。因此,不要在用戶的文檔中存儲用戶關注的內容,而應將followBy列表存儲在每個關注者中。然後,您可以在一次往返中執行ARRAY_CONTAINS查詢。

您也可能想看看Azure的流分析產品,因爲它具有圖形查詢功能。