0
私はCosmosDB(documentdb api経由でnode.js)を使用しています。単純なCosmosDBクエリがNode.js経由で動作することはできませんが、Azureのクエリエクスプローラを介して正常に動作します
単純なクエリ(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}`);
}
}
});
明らかに、私は何かが欠けています。クエリが複数のパーティションにまたがるので、あなたはtrue
にenableCrossPartitionQuery
オプションを設定する必要があります:エラーメッセージは非常に明確である
ミハイル万人のテキサス州私は高い検索enableCrossPartitionQueryをtrueに変更するための構文が低い!Txもう一度 - 私はちょうどそれが働いている:-) – dieterb