Как использовать ключ раздела в CosmosBD через SDK или через Select QUERY - PullRequest
0 голосов
/ 21 июня 2020

Примите во внимание Ниже мой образец json.

    {         
      "servletname": "cofaxEmail",
      "servlet-class": "org.cofax.cds.EmailServlet",
      "init-param": {
      "mailHost": "mail1",
      "mailHostOverride": "mail2"    
    }

Я выбрал "servletname" в качестве основного ключа, так как я буду получать его в каждом запросе, плюс несколько 1000 имен серверов, это может быть лучший PK.

Мой вопрос, чтобы ключ раздела работал на меня.

Нужно ли мне указывать параметр ключа раздела отдельно, как показано ниже

ItemResponse<ServerDto> ServerDtoResponse = await this.container.ReadItemAsync<ServerDto>(bocServerDto.mailHost, new PartitionKey(bocServerDto.servletname));

или

Включение ключа раздела в сам запрос select без добавления отдельного new PartitionKey (), например

select * from r where r.servletname='cofaxEmail' and r.mailHost='mail1';

Суть вопроса: передавая объект partitionKey в каких условиях запроса выбора достаточно использовать функцию ключа раздела?

Спасибо

1 Ответ

1 голос
/ 21 июня 2020

Для любой операции crud вы должны передать значение ключа раздела. Например, для точки чтения.

ItemResponse<ServerDto> ServerDtoResponse = await this.container.ReadItemAsync<ServerDto>(bocServerDto.mailHost, new PartitionKey("cofaxEmail"));

Для запроса вы можете либо передать его в параметрах queryRequest, либо использовать в запросе в качестве первого предиката фильтра. Здесь - пример использования параметров queryRequest.

спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...