gpt4 book ai didi

azure-cosmosdb - 无法通过 Node.js 获得简单的 CosmosDB 查询 - 但通过 Azure 的查询资源管理器可以正常工作

转载 作者:行者123 更新时间:2023-12-04 23:15:10 29 4
gpt4 key购买 nike

我正在使用 CosmosDB(node.js 通过 documentdb api) - 仅在“id”上分区。

一个简单的查询 ( SELECT * FROM c WHERE c.akunaCustomer = "xyz" ) 在 Azure 查询资源管理器中运行良好,但我的 node.js 代码出现以下错误 - 运行相同的查询。

code: 400, BadRequest, Cross partition query is required but disabled. Please set x-ms-documentdb-query-enablecrosspartition to true, specify x-ms-documentdb-partitionkey, or revise your query to avoid this exception.

这是我的代码:

var documentClient = require("documentdb").DocumentClient;
var config = require("./config");

var client = new documentClient(config.endpoint, {"masterKey": config.primaryKey});

var databaseUrl = `dbs/${config.database.id}`;
var collectionUrl = `${databaseUrl}/colls/${config.collection.id}`;

client.queryDocuments(collectionUrl,
'SELECT * FROM c WHERE c.akunaCustomer = "xyz"'
).toArray((err, results) => {
if(err) {
console.log(err);
}
else {
for (var queryResult of results) {
let resultString = JSON.stringify(queryResult);
console.log(`Query: ${resultString}`);
}
}
});


显然我错过了一些东西。 :-( 任何帮助,将不胜感激。

最佳答案

错误信息很明确:因为你的查询跨越多个分区,所以需要设置enableCrossPartitionQuery选项 true :

client.queryDocuments(
collectionUrl,
'SELECT * FROM c WHERE c.akunaCustomer = "xyz"',
{ enableCrossPartitionQuery: true }
)

关于azure-cosmosdb - 无法通过 Node.js 获得简单的 CosmosDB 查询 - 但通过 Azure 的查询资源管理器可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44125719/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com