我有一个看起来像这样的文件:
{
"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中的等价物是什么?
答案 0 :(得分:3)
DocumentDB中的等价物是两次往返。首先获取包含该用户所关注的数组的用户文档。然后构建一个大的OR子句并使用它来获取他们所关注的文档。
或者,您可能希望将关系存储在另一个方向。因此,不是存储一个用户在该用户文档中跟随的人,而是在每个关注者中存储followBy列表。然后,您可以在一次往返中执行ARRAY_CONTAINS查询。
您还可能希望查看Azure的流分析产品,因为它具有图形查询功能。