如果你需要在MongoDB中查询指定数量的文档,可以使用 MongoDB 的 limit() 方法,limit() 方法接受一个数字参数,该参数指定从 MongoDB 中读取的文档数。
limit() 语法:
db.collection.find().limit(size);
参数说明:
collection:表示集合名称
size:表示你要从集合中查询文档的数量
实例:从users集合中查询2条记录。如下:
# 查看 users 集合中的文档 > db.users.find(); { "_id" : ObjectId("5e4948fecd56e9badcee416a"), "id" : 1, "name" : "张三" } { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" } { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" } { "_id" : ObjectId("5e494917cd56e9badcee416d"), "id" : 4, "name" : "赵六" } { "_id" : ObjectId("5e49492acd56e9badcee416e"), "id" : 5, "name" : "洪七" } # 从 users 中查询2个文档 > db.users.find().limit(2); { "_id" : ObjectId("5e4948fecd56e9badcee416a"), "id" : 1, "name" : "张三" } { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" }
如果你们没有指定limit()方法中的参数则显示集合中的所有数据。如下:
> db.users.find().limit(); { "_id" : ObjectId("5e4948fecd56e9badcee416a"), "id" : 1, "name" : "张三" } { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" } { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" } { "_id" : ObjectId("5e494917cd56e9badcee416d"), "id" : 4, "name" : "赵六" } { "_id" : ObjectId("5e49492acd56e9badcee416e"), "id" : 5, "name" : "洪七" }
可以使用 skip() 方法来跳过指定数量的文档,skip() 方法同样接受一个数字参数作为跳过的记录条数。语法如下:
db.collection.find().skip(number)
参数说明:
collection:为集合名称
number:要跳过文档的数量
实例:查询users集合,使用skip()方法跳过两个文档。如下:
# 查看集合中所有的数据 > db.users.find() { "_id" : ObjectId("5e4948fecd56e9badcee416a"), "id" : 1, "name" : "张三" } { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" } { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" } { "_id" : ObjectId("5e494917cd56e9badcee416d"), "id" : 4, "name" : "赵六" } { "_id" : ObjectId("5e49492acd56e9badcee416e"), "id" : 5, "name" : "洪七" } # 使用 skip() 方法跳过两个文档 > db.users.find().skip(2); { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" } { "_id" : ObjectId("5e494917cd56e9badcee416d"), "id" : 4, "name" : "赵六" } { "_id" : ObjectId("5e49492acd56e9badcee416e"), "id" : 5, "name" : "洪七" }
下面将介绍怎样利用 skip() 和 limit() 方法实现查询数据分页。如下:
db.users.find(); { "_id" : ObjectId("5e4948fecd56e9badcee416a"), "id" : 1, "name" : "张三" } { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" } { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" } { "_id" : ObjectId("5e494917cd56e9badcee416d"), "id" : 4, "name" : "赵六" } { "_id" : ObjectId("5e49492acd56e9badcee416e"), "id" : 5, "name" : "洪七" } # 模拟了一个分页操作,类似mysql中的 # select * from users limit 1,2 > db.users.find().limit(2).skip(1); { "_id" : ObjectId("5e494905cd56e9badcee416b"), "id" : 2, "name" : "李四" } { "_id" : ObjectId("5e49490dcd56e9badcee416c"), "id" : 3, "name" : "王五" }