2017-03-23 11 views
1

を与える数:Azureでは、DocumentDBは、私は次のクエリを実行するポータルで、documentDBコレクションに誤った結果に

SELECT * FROM c WHERE NOT IS_DEFINED(c.UserDataType) 

、一部の結果が返されます。

は今、このクエリを実行している:

SELECT count(1) FROM c WHERE NOT IS_DEFINED(c.UserDataType) 

リターンこの結果:

[ { "$ 1":0 } ]

は、どのようにそれをすることができますか?助けるかもしれ

ことの一つは、クエリがポータルで実行されている場合、いくつかの継続が

enter image description here

+1

私はちょうど私のコレクションで同じクエリを繰り返し、彼らが働いていました。複数のパーティションを使用していますか?複数の地域がありますか?もしそうなら、あなたのデフォルトの整合性はどれですか? –

+0

そのコレクションのレコード/ドキュメントはいくつですか?別のコレクションで同じクエリを実行しようとしますか? –

+0

複数のパーティションであるかどうかを確認するにはどうすればよいですか? 複数の地域ではありません。 –

答えて

1

DocumentDB起こる2つの方法で、従来のデータベースとは異なることである - 1)それは5の待ち時間のキャップを持っていますHTTPSとRESTに基づいたクラウドベースのサービスであるため、すべてのリクエストの秒数です.2)スループットがプロビジョニングされたデータベースなので、予測可能なパフォーマンスが得られますが、リソースの予約済みの予算内でクエリを実行する必要があります。

これは、一部のクエリは、増分進捗状況を作ることができることを意味し、あなたはすべての結果が利用可能になるまで継続トークンでクエリを再送信することで、実行を再開する必要があります。集約クエリの場合、DocumentDBは部分集計結果がクライアントに返され、最終結果の生成(たとえば、集計の集計)をクライアントが担当するという点で「map-reduce」のように機能します。通常、クエリは1回の往復で完了するため、問合せに実行するスキャンが必要な場合(NOT IS_DEFINED句の否定が含まれるためこの原因のように)、この動作に気づかないでしょう。

あなたが完了するまで、クエリを実行する場合は、正しい結果が返さ表示されます。

関連する問題