如何使用Hydrating子查询来查询DocumentDB?

时间:2015-11-09 21:57:16

标签: .net linq azure-cosmosdb nosql

如果我的DocumentDB集合中有2个文档

'文件A'

{ "id": 123, "OtherDocId": 456, "Bdoc" : null } 

和'文件B'

{ "id": 456, "name": "" } 

我怎样才能获得文档A,使其看起来像这样

{ "id": 123, "OtherDocId": 456, "Bdoc" : { "id": 456, "name": "" }}

如果是SQL,我可以做像

这样的事情
SELECT *, some-sub-query-here AS 'BDOC' from...

我不是想把一个no-sql变成一个关系数据库但是我有一个定期更新的文档(Bdoc)与该集合中的一些文档相关联,我不想做2往返文件找到它是Bdocid,然后获取它的相关Bdoc然后把它们放在一起for循环。

如果我直接使用nosql样式然后将Bdoc复制到每个A文档中,每次我想更新它时Bdoc都会变成维护混乱,因为我必须更新每个文档Bdocid

1 个答案:

答案 0 :(得分:1)

您不能使用SQL语法(实际上是关系文档或跨文档连接)组合两个单独的文档。

如果您希望避免2次网络往返,您可以编写一个存储过程,进行两次单独的查找和转换。