【发布时间】:2022-01-19 08:59:58
【问题描述】:
【问题讨论】:
标签: mongodb go pagination limit offset
【问题讨论】:
标签: mongodb go pagination limit offset
您可以为此使用go.mongodb.org/mongo-driver/mongopackage。
SetSkip 指定返回前要跳过的文档数(它是偏移量)。
SetLimit 指定结果数量的限制。
options 是从 go.mongodb.org/mongo-driver/mongo/options 导入的
db.Collection("users").Find(ctx, bson.M{}, options.Find().SetSkip(offset).SetLimit(limit))
【讨论】:
您可以按以下方式跳过和限制每个集合的文档
db.users.find({}).skip(1).limit(10).sort({_id:1})
您也可以为此使用mongoose-paginate 包。 它还可以提供排序和填充等功能,以及文档的跳过和限制。
var mongoose = require('mongoose');
var mongoosePaginate = require('mongoose-paginate');
var userSchema = new mongoose.Schema(
{ name:{
type:String
}
});
userSchema.plugin(mongoosePaginate);
Mongoose 分页需要两个参数作为输入,即过滤器和选项
db.users.paginate(filter,options)
filter 是搜索条件,而 options 有以下字段:
选择:从结果中选择哪些字段
排序:在哪个字段上排序以及按什么顺序
populate :如果有Id的引用则可以进行populate 外部。
精益:是否应该将结果转换为 js 对象。
leanWithId:还应该把ObjectId转成js Object中的字符串。
偏移量:要跳过多少个文档。
limit:每页要显示的文档数。
【讨论】: