如何在 mongodb 中使用偏移量和限制?
Posted
技术标签:
【中文标题】如何在 mongodb 中使用偏移量和限制?【英文标题】:how use offset and limit with mongodb? 【发布时间】:2022-01-19 08:59:58 【问题描述】:如何在 Go 中通过 mongodb 使用偏移量和限制?
我需要一个偏移量来确定我首先获取的 API 的顺序,并且我需要一个限制来指定要显示的 API 的数量。有人做过吗?
图片说明
【问题讨论】:
Don't paste images of text 【参考方案1】:您可以为此使用go.mongodb.org/mongo-driver/mongo
package。
SetSkip
指定返回前要跳过的文档数(它是偏移量)。
SetLimit
指定结果数量的限制。
options
是从 go.mongodb.org/mongo-driver/mongo/options
导入的
db.Collection("users").Find(ctx, bson.M, options.Find().SetSkip(offset).SetLimit(limit))
【讨论】:
【参考方案2】:您可以按以下方式跳过和限制每个集合的文档
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:每页要显示的文档数。
【讨论】:
以上是关于如何在 mongodb 中使用偏移量和限制?的主要内容,如果未能解决你的问题,请参考以下文章