sql >> データベース >  >> NoSQL >> MongoDB

Mongo$existsクエリは正しいドキュメントを返しません

    これは、bcoded_metadataにスパースインデックスを使用しているためです。 。 bcoded_metadataにスパースインデックスがある場合、インデックスには、フィールドbcoded_metadataを持たないドキュメントは含まれません。 。 bcoded_metadataのないドキュメント フィールドは元のクエリの一部ではないため、「count」は0を返します。

    検索のみを実行する場合:db.ts.find({"bcoded_metadata" : { "$exists" : false } }) そうすれば、結果も得られません。非スパースインデックスを使用するか、db.ts.count();を使用してフルカウントを実行できます。 db.ts.find({"bcoded_metadata" : { "$exists" : true } })の結果を減算します 結果。

    もう少し説明するJIRAチケットがあり、MongoDBがこのエラー/警告メッセージを取得した場合に追跡できます:https://jira.mongodb.org/browse/SERVER-3918




    1. MongoDBの代替のようなPouchDB/CouchDB

    2. MongoDB:ネストされたキーの存在

    3. 文字列値から空白(先頭と末尾)を削除する

    4. 夏時間オフセットを使用して日付別にグループを集計