【问题标题】:how use offset and limit with mongodb?如何在 mongodb 中使用偏移量和限制?
【发布时间】:2022-01-19 08:59:58
【问题描述】:

如何在 Go 中通过 mongodb 使用偏移量和限制?

我需要一个偏移量来确定我首先获取的 API 的顺序,并且我需要一个限制来指定要显示的 API 的数量。有人做过吗?

图片说明

【问题讨论】:

标签: mongodb go pagination limit offset


【解决方案1】:

您可以为此使用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))

【讨论】:

    【解决方案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:每页要显示的文档数。

    【讨论】:

      猜你喜欢
      • 2020-07-27
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2016-09-19
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多