limit()
を使用して、必要な数のドキュメントのみを返します メソッド。
MongoDBでは、limit()
を使用できます カーソルが返すドキュメントの最大数を指定するメソッド。
db.collection.find()
を使用してコレクションをクエリする場合 メソッドには、limit()
を追加できます 制限を指定します。
例
まず、なしでクエリを実行しましょう。 制限(返されるドキュメントの数を確認できるようにするため):
制限なし
db.artists.find( { albums: { $exists: false }} )
結果:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
制限付き
では、結果を3つのドキュメントに限定しましょう:
db.artists.find( { albums: { $exists: false }} ).limit(3)
結果:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" }
クエリでは、$exists
を使用しています フィールドの存在を確認する演算子。この場合、
アルバム
を持っているアーティストは除外されます ドキュメントのフィールド。
これは、{ $exists: true }
に簡単に切り替えることができます。
アルバム
を持つアーティストのみを含める フィールド。
skip()
を追加します 方法
skip()
を使用できます カーソル内のドキュメントにスキップするメソッド。つまり、MongoDBが結果を返し始める場所を制御できます。
db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1)
結果:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
したがって、最初の結果をスキップしたものの、3つのドキュメントが返されたことがわかります。
skip()
に注意してください すべてのクエリで使用できます(limit()
のクエリだけでなく、 。
たとえば、このページの上部にあるクエリは6つのドキュメントを返しました。 skip(3)
を追加すると 、最後の3つのドキュメントになります:
db.artists.find( { albums: { $exists: false }} ).skip(3)
結果:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }