UPDATEMongoDBの配列はソート
CosmoDBチームは彼らの言った上問題があることが確認されCosmoDBで働いていないと、彼らはすでに修正に取り組んでいます。ここのコメント欄で
さらに詳しい情報:https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction
元の質問
我々はCosmoDBへの移行を計画しているが、我々は、$ sortコマンドで問題を発見しました。このクエリを実行している当社の現在のMongoDBサーバで :
db.getCollection('Product').find({
"ProductTypeId" : ObjectId("5913546b1ba88338e4347641"),
"SubtypeIngredients" : "5949852c1ba88344d0facbf5"
})
.skip(0).sort({ "IngredientRanks.2.Rank" : 1 }).limit(1)
我々はいくつかの結果を得るが、CosmoDBで同じクエリを実行しているときに我々は結果を得ることはありません。
私は、クエリからのsortコマンドを削除した場合、私はCosmoDBから結果を得る
コレクション内のデータは、当社のローカルDBとCosmoDBでも同じです。
ご協力いただければ幸いです。 ありがとう!
アップデート:ここで
は、問題を示す実際のクエリのスクリーンショットです。
私はあなたのデータが同じであることを正直に疑う。 .count()を実行して、数字が最初に一致するかどうか確認してください。並べ替えはデータをフィルタリングせず、どちらも空のフィルタドキュメントではありません。 – dnickless
@dnickless私はクエリと結果でいくつかのスクリーンショットを添付しました。 –
私は、実際には答えていないが、重要な点に対処しているだけで、私が知っている、ちょうど追加された答えと一般的な合意になる傾向があります。 CosmosDBはMongoDBではありませんが、MongoDB用に書かれたドライバはクエリを接続して実行することができるという点で、ワイヤプロトコルと互換性があるだけであると主張しています。しかし、これは実際には「まったく別のもの」であるとは変わりません。したがって、一般的な推奨は1です。CosmosDBを使用する場合は、互換性の主張ではなく、独自のネイティブAPIを使用します。 2. MongoDB APIに書かれたコードを「設計通りに」動作させたい場合は、代わりにMongoDBを使用します。 –