2017-04-03 11 views
0

Node.jsを使用してパーティションキーを持つDocumentDBをクエリしようとしていますが、失敗します。 ここによれば - https://stackoverflow.com/a/43002819/7799859 - 私はパーティションキーを渡す必要がありますオプションと呼ばれるいくつかのオブジェクトです。Node.js - Azure DocumentDBとreadDocument(リンク、オプション、コールバック)を使用するときにパーティションキーを渡す

私はこのoptions.partitionKeyまたはoptions.enableCrossPartitionQueryの例をどこから見つけることができますか?

このオプションオブジェクトは何ですか? NodeJSでどのように作成すればよいですか?

これは私のコードです:

find: function (querySpec, callback) 
{ 
    var self = this; 
    console.log(self.collection); 
    console.log(self.collection._self); 
    console.log(this.collectionUrl); 
    var options = { 
      partitionKey: "myCustomKey" 
    }; 
    self.client.queryDocuments(this.collectionUrl, querySpec,options).toArray(function (err, results) { 
     if (err) { 
      callback(err); 
     } else { 
      callback(null, results); 
     } 
    }); 
} 

私は、オプションのVARを追加しましたが、私はそれを送信するときには結果が返されません。

私はそれを送信しない場合は、これは誤りです:

{"code":"BadRequest","message":"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.\r\nActivityId: e4103506-d352-46d5-97d0-740d89065955"}

私はノードのバージョン4.2.6とdocumentdbの最新バージョンを使用しています。 @ GaryLiu-MSFTこれはpackage.jsonファイルからである: - "documentdb": "^ 1.10.0"、

これは私querySpecです:

VAR querySpec = { クエリ: 'SELECT *ルートから' 、 };

+0

コードを共有していないので、あなたに助けを与えるのは難しいです。あなたは単に「しかしそれは失敗する」と述べます。 *何が失敗するのですか?エラーメッセージとは何ですか?あなたの質問は何ですか?あなたのデータはどのように見えますか?あなたの質問を編集してください。あなたが求めているものが不明です。 –

+0

また、例を探すための部分は、トピック外です(ツール/チュートリアルの推奨事項は明確にトピック外です)。 Web上には、sdk githubレポ自体を含め、多くの例が浮かんでいます。 –

+0

コードを共有してください。 –

答えて

1

実際にパーティションの1つのリテラル値が予想されるため、パーティションキーをパーティションキープロパティの名前として設定すると、結果は得られません。つまり、クエリは1つのパーティションに対してのみ実行されます。おそらく、パーティションキーの配列を使用することができますが、私はそれを試していません。

node.js SDKのパーティションキーオプションに関するドキュメントは見つかりませんが、動作します。すべてのパーティションを照会したいだけなら:

var options = 
    { 
     enableCrossPartitionQuery: true 
    }; 
関連する問題