Как объединить две коллекции в документе db с помощью c # - PullRequest
0 голосов
/ 26 июня 2019

У меня есть 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 голосов
/ 26 июня 2019

Вы не можете присоединиться к коллекциям в базе данных Cosmos.

Что касается альтернатив, у вас есть несколько вариантов, которые требуют значительных изменений:

  1. Поместите все свои данные в одну коллекцию. Тогда вы можете делать соединения.
  2. Держите свои коллекции отдельно и объединяйте их локально с помощью кода.
  3. Избегайте объединений, денормализуя свои данные, чтобы избежать необходимости объединений.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...