2017-03-04 8 views
1

下記のAzure DocumentDBのサンプルに従っています。このサンプルでは、​​C#コードはDocumentDB内のドキュメントを照会します。Azure DocumentDB REST APIで100を超えるクエリ結果を取得する方法

https://github.com/Azure/azure-documentdb-dotnet/blob/master/samples/rest-from-.net/Program.cs

ライン182:

var qry = new SqlQuerySpec { query = "SELECT * FROM root" }; 
var r = client.PostWithNoCharSetAsync(new Uri(baseUri, resourceLink), qry).Result; 

問題は 'R' は最初の100個の文書が含まれていた結果です。 Client SDKを使用した場合、100以上を得ることができます。ストリームを使用しようとしましたが、これまでのところ運がありませんでした。どんな助けもありがとう!

答えて

3

SQLクエリの場合、結果セットが大きすぎる場合、結果はセグメントで返されます。結果は、デフォルトで100項目または1 M​​Bのチャンク(いずれかの制限が最初に適用されます)で返されます。

連続するトークンを使用して、各セグメントを次々と取得することができます。または、要求にx-ms-max-item-countカスタムヘッダーを設定して、制限値を適切な値に増やします。

さらに詳しい情報はREST APIをご覧ください。あなたが1000件の文書の代わりに、100

0

私はちょうどここに推測しているが、それはショットの価値があるかもしれませんを得るためにライン

client.DefaultRequestHeaders.Add("x-ms-max-item-count", "1000"); 

を追加する必要がサンプルプログラムについては

。あなたがヘッダー内の任意のトークンを得るかもしれないと述べられている「レスポンス」の下の「ヘッダ」セクションで

​​

「X-MS-継続」:ここではリストのアクションを説明MSDNからのドキュメントがあります。記述に基づいて、このトークンを指定して別のGET要求を発行して、結果セットの他の要素を取得する必要があります。

このようなヘッダーが返信で届くかどうか確認できますか?その場合は、このトークンを指定して別のget要求を発行することができます(同じ文書ページの「Request」を参照)。

+0

私の場合、返される値は1000以上であり、継続トークンを使用する必要がありました。ありがとう! – Tom

+0

私の感情はそんなに愚かではないことが判明してうれしいです:) –

関連する問題