Сбой поиска NodeJS Azure Cosmos

#node.js #azure-cosmosdb

#node.js #azure-cosmosdb

Вопрос:

Я пытаюсь запросить CosmosDB с помощью приложения NodeJS. У меня есть следующий код:

 const feedOptions = {
  enableCrossPartitionQuery: true,
  headers: {
    "x-ms-max-item-count": 500
  }
};
const results = await container.items.query(query, feedOptions).fetchAll();
return results;
 

и пример запроса

  {
   "query":"SELECT * FROM root r WHERE r.pdfId = @pdfId AND r.userId = @userId AND CONTAINS(r.string, @string0) ORDER BY r.pageNumber",
   "parameters":[
      {
         "name":"@pdfId",
         "value":"VALUE_HERE"
      },
      {
         "name":"@userId",
         "value":"VALUE_HERE"
      },
      {
         "name":"@string0",
         "value":"KEYWORD_HERE",
         true
      }
   ],
   "headers":{
      "x-ms-max-item-count":500
   }
}
 

Однако каждый раз я получаю следующий ответ

  Executed 'Functions.CosmosPdfWords' (Failed, Id=*ID HERE*, Duration=63398ms)
[2021-01-26T15:49:07.678Z] System.Private.CoreLib: Exception while executing function: Functions.CosmosPdfWords. System.Private.CoreLib: Result: Failure
[2021-01-26T15:49:07.678Z] Exception: Request failed: {"resources":[],"headers":{"x-ms-request-charge":86.61,"x-ms-documentdb-query-metrics":{}},"hasMoreResults":false}
[2021-01-26T15:49:07.678Z] Stack: .
 

В трассировке стека нет ничего, что помогло бы мне разобраться в проблеме, которая может быть там. Я неправильно формирую запрос? Или происходит что-то еще? Я был бы признателен за любые советы или указания в правильном направлении.

Ответ №1:

Я протестировал ваш код, и он может работать нормально для меня. Я думаю, что что-то не так с вашим другим кодом. Вы можете это проверить.

 const database = client.database(databaseId);
const container = await database.container(containerId);

const query = {
    "query":"SELECT * FROM root r WHERE r.pdfId = @pdfId AND r.userId = @userId AND CONTAINS(r.string, @string0) ORDER BY r.pageNumber",
        "parameters":[
            {
                "name":"@pdfId",
                "value":"VALUE_HERE"
            },
            {
                "name":"@userId",
                "value":"VALUE_HERE
            },
            {
                "name":"@string0",
                "value":"VALUE_HERE"
            }
        ]
    };

    const feedOptions = {
        enableCrossPartitionQuery: true,
        headers: {
          "x-ms-max-item-count": 500
        }
    };
    

const results = await container.items.query(query, feedOptions).fetchAll();
return results;