如果你需要在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" : "王五" }