2017-05-23 1 views
0

Ich verwende CosmosDB (node.js via documentdb api) - partitioniert nur mit 'id'.Einfache CosmosDB-Abfrage funktioniert nicht über Node.js - funktioniert aber über den Abfrage-Explorer von Azure

Eine einfache Abfrage (SELECT * FROM c WHERE c.akunaCustomer = "xyz") funktioniert einwandfrei von Azure Query Explorer, aber mein Node.js-Code gibt den folgenden Fehler - Ausführen der identischen Abfrage.

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. 

Hier ist mein Code:

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}`); 
 
      } 
 
     } 
 
    });

Klar bin ich etwas fehlt. . :-(Jede Hilfe würde geschätzt

Antwort

2

Die Fehlermeldung ist ganz klar:.

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

tx eine Million Mikhail Ich suchte hoch: weil Ihre Abfrage mehrere Partitionen umfasst, Sie enableCrossPartitionQuery Option true festlegen müssen + niedrig für die Syntax, um die enableCrossPartitionQuery auf true zu setzen! Tx du nochmal - ich habe gerade ein it working :-) – dieterb

Verwandte Themen