2017-04-24 7 views
1

Azure DocumentDBデータベースからすべての文書を受け取ろうとしています。私は私の問題を示す例を見つけましたが、うまくいきません。 https://github.com/Microsoft/azure-docs/blob/master/articles/documentdb/documentdb-sharding.md#create-queries-against-all-collections-in-the-databaseデータベースからすべての文書を受け取るAzure DocumentDB

マイコード(C#の):

var client = new DocumentClient(new Uri(endPointUrl), authorizationKey); 
var database = await client.ReadDatabaseAsync(UriFactory.CreateDatabaseUri(DatabaseId)); 
var documents = client.CreateDocumentQuery(database.Resource.SelfLink).ToList(); 

およびI例外CreateDocumentQuery

メッセージ:{ "サーバURLを解析できませんでした" を}; エラー:{{"code": "NotFound"、 "message": "サーバーがURLを解析できませんでした" }};

だから、一度に多くのコレクションからドキュメントを受け取ることはできますか?

答えて

1

だから、一度に多くのコレクションからドキュメントを受け取ることはできますか?

単純な答えはいいえ。あなたはそれを行うことはできません。

まず、すべてのコレクションをデータベースにリストし、次に各コレクションからドキュメントを個別に取得します。コレクションごとに、別々のクエリを実行する必要があります。

また、コレクションに1000を超えるドキュメントがある場合、1回のリクエストで最大1000個のドキュメントが返されることに注意してください。この場合、サービスから継続トークンが返されます。そのコレクションから次のデータセットを取得するには、この継続トークンを使用してクエリを再送信する必要があります。タイムサービスが応答として継続トークンを返すまで、このプロセスを繰り返します。継続トークンが存在しない場合は、コレクションのすべての文書が取得されたことを意味します。その後、データベース内の次のコレクションに移動することができます(シーケンシャル実行の場合)。

+0

包括的な回答をいただきありがとうございます。だから私のようなものだけど、GitHubの情報ではわからなかった。 – Pyotreq

関連する問題