2016-11-20 31 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的流分析产品,因为它具有图形查询功能。