MongoDBでは、db.collection.countDocuments()
メソッドは、コレクションまたはビューのクエリに一致するドキュメントの数を返します。
collection
partは、カウント操作を実行するコレクションまたはビューの名前です。
例
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.countDocuments({})
結果:
7
クエリの結果をカウントする
クエリ条件を渡すことで、クエリの結果をカウントできます。
例:
db.pets.countDocuments({
"type": "Dog"
})
結果:
4
この例では、コレクションに4匹の犬がいることがわかりました。
別のクエリの数を確認しましょう。今回は、体重が一定量を超えるペットの数を調べます。
db.pets.countDocuments({
"weight": { $gt: 10 }
})
結果:
3
カウントを制限する
limit
を使用します カウントするドキュメントの最大数を指定するパラメータ。
例:
db.pets.countDocuments( {}, { limit: 5 } )
結果:
5
以前、このコレクションには実際には7つのドキュメントがあることを確認しましたが、この例では、最大5つに制限しました。
制限が実際の数よりも多い場合、結果はlimit
の影響を受けません。 引数。
例:
db.pets.countDocuments( {}, { limit: 10 } )
結果:
7
ドキュメントのスキップ
skip
を使用してカウントできます カウントする前にドキュメントの数をスキップするパラメータ。
例:
db.pets.countDocuments( {}, { skip: 5 } )
結果:
2
count()
の非推奨 countDocuments()
を支持して
MongoDBのドキュメントには次のように記載されていることに注意してください。
4.0機能と互換性のあるMongoDBドライバーは、それぞれのカーソルとコレクションの
count()
を廃止します。countDocuments()
用の新しいAPIを支持するAPI およびestimatedDocumentCount()
。特定のドライバーの特定のAPI名については、ドライバーのドキュメントを参照してください。
詳細情報
countDocuments()
メソッドは、count()
のようにカウントを返すためにメタデータに依存しません メソッドは行います。代わりに、ドキュメントの集計を実行します。これにより、正確なカウントが得られます(これは、count()
では常に言えるとは限りません。 方法)。
MongoDBのドキュメントによると、countDocuments()
クリーンでないシャットダウンの後、またはシャーディングされたクラスター内に孤立したドキュメントが存在する場合でも、正確です。
db.collection.count()
メソッドはhint
も受け入れます パラメータとmaxTimeMS
パラメータ。
詳細については、MongoDBのドキュメントを参照してください。