Космос DB IN Claus через REST API - PullRequest
2 голосов
/ 21 июня 2019

Я не могу сформулировать поисковый запрос, используя предложение IN для базы данных Azure Cosmos DB

Запрос

{
  "query": "SELECT * FROM LOADS l WHERE l.schedulingSystem in (@schedulingSystem)",
  "parameters": [
    {
      "name": "@schedulingSystem",
      "value": "A,B"
    }
  ]
}

Я также пытался указать значения в одинарных кавычках "value": "'A','B'", но не работал. Я использую заголовок 'x-ms-version', '2018-12-31' для запроса

Нет ответа об ошибке, но получен пустой ответ (данные для этого критерия поиска существуют).

Любая помощь или указатели действительно ценятся.

1 Ответ

0 голосов
/ 21 июня 2019

Если вы используете параметризованный список IN с sqlQuerySpec , то при расширении параметра оно будет рассматриваться как одно значение.

Пожалуйста, используйте удобный способ написать свой запрос - вместо этого используйте ARRAY_CONTAINS и передайте список элементов в виде единого параметра. Пожалуйста, настройте ваш запрос следующим образом:

SELECT * FROM LOADS l WHERE ARRAY_CONTAINS(@schedulingSystem, l.schedulingSystem,false)

 "parameters": [
    {
      "name": "@schedulingSystem",
      "value": "['A','B']"
    }
  ]

Аналогичный вопрос для ваших ссылок:

1. https://github.com/Azure/azure-cosmos-dotnet-v2/issues/614

2. ГДЕ с Azure DocumentDB (CosmosDB) .Net SDK

...