#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;