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

MongoDBのestimatedDocumentCount()

    MongoDBでは、db.collection.estimatedDocumentCount() メソッドは、コレクションまたはビュー内のすべてのドキュメントの数を返します。

    collection partは、カウント操作を実行するコレクションまたはビューの名前です。

    db.collection.estimatedDocumentCount() メソッドはcountをラップします コマンド。

    petsというコレクションがあるとします。 次のドキュメントを使用:

    { "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
    { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
    { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
    { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
    { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
    { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
    { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

    次のクエリを使用して、コレクション内のドキュメントの数を返すことができます。

    db.pets.estimatedDocumentCount()

    結果:

    7

    db.collection.estimatedDocumentCount() メソッドはクエリフィルターを取りません。代わりに、メタデータを使用して、コレクション全体のドキュメント数を返します。

    ただし、空のドキュメントが提供された場合でも機能します。

    db.pets.estimatedDocumentCount({})

    結果:

    7

    maxTimeMS パラメータ

    db.collection.estimatedDocumentCount() メソッドは、maxTimeMSという1つの(オプションの)パラメーターのみを受け入れます。 パラメータ。これにより、カウント操作を実行できる最大時間を設定できます。

    例:

    db.pets.estimatedDocumentCount({}, { maxTimeMS: 5000 })

    結果:

    7

    count()の非推奨 estimatedDocumentCount()を支持して

    MongoDBのドキュメントには次のように記載されていることに注意してください。

    4.0機能と互換性のあるMongoDBドライバーは、それぞれのカーソルとコレクションのcount()を廃止します。 countDocuments()用の新しいAPIを支持するAPI およびestimatedDocumentCount() 。特定のドライバーの特定のAPI名については、ドライバーのドキュメントを参照してください。

    詳細情報

    シャーディングされたクラスターでは、結果のカウントは孤立したドキュメントを正しく除外しません。

    また、汚れたシャットダウンの後、カウントが正しくない可能性があります。

    詳細については、MongoDBのドキュメントを参照してください。


    1. MongoDBは削除されたスペースを再利用しますか?

    2. MongoDBで日付を文字列に変換する3つの方法

    3. 流星コレクションのクエリでグループ化

    4. 名前解決redisの一時的な失敗