如何使用C#连接文档db中的两个集合

时间:2019-06-26 08:34:15

标签: c# azure-cosmosdb

我有Document db,并且有一种情况,我将为所需的结果加入两个集合,但无法加入两个集合。

这是获取记录的简单选择查询:

SELECT 
c.DocumentName,
c.DocumentID,
c.VersionID,
c.VersionName,
c.PageID,
c.OCRSpan 
FROM c 
where ARRAY_CONTAINS([4780,4779], c.VersionID)
var endpoint = ConfigurationManager.AppSettings["DocDbEndpoint"];
var masterKey = ConfigurationManager.AppSettings["DocDbMasterKey"];

using (var client = new DocumentClient(new Uri(endpoint), masterKey))
{
    FeedOptions queryOption = new FeedOptions { MaxItemCount = 100 };
    int[] ids = { 4779 };

    //Execute Store Procedure                    
    var result = await client.ExecuteStoredProcedureAsync<string>("dbs/HOCRData/colls/HOCR/sprocs/getData/", new RequestOptions() { PartitionKey = new PartitionKey(Undefined.Value) }, ids);

    Console.WriteLine($" {result.Response} ");                    
    Console.ReadKey();
    ...

提到的代码仅适用于单个集合,但是我希望将两个集合连接在一起。

或者是否有替代方法来合并两个收集文档?

1 个答案:

答案 0 :(得分:0)

您无法在Cosmos DB中加入收藏集。

对于替代者,您有一些选项都需要进行一些重大更改:

  1. 将所有数据放入一个集合中。然后就可以加入。
  2. 将您的收藏分开,并通过代码在本地进行联接。
  3. 通过对数据进行非规范化来避免将所有内容连接在一起,从而避免进行连接的需要。