2017-05-23 22 views
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}`); 
 
      } 
 
     } 
 
    });

明らかに、私は何かが欠けています。クエリが複数のパーティションにまたがるので、あなたはtrueenableCrossPartitionQueryオプションを設定する必要があります:エラーメッセージは非常に明確である

答えて

2

いただければ幸いですすべてのヘルプ:-(。

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

ミハイル万人のテキサス州私は高い検索enableCrossPartitionQueryをtrueに変更するための構文が低い!Txもう一度 - 私はちょうどそれが働いている:-) – dieterb

関連する問題