如何在mongoose查询中设置限制,偏移,跳过

cod*_*der 1 mongoose node.js express

我正在使用express,mongoose,node.so我已经检查了有关跳过和限制文档的查询.

   Model.find({},null,{limit:2,skip:20},function(err,data){
           //console.log(data)
      })
Run Code Online (Sandbox Code Playgroud)

abd*_*rik 9

var query = Model.find({}).skip(2).limit(5)
query.exec(callback);
Run Code Online (Sandbox Code Playgroud)

写你的代码 callback

query.exec(function(err,data){
   //console.log(data)
});
Run Code Online (Sandbox Code Playgroud)

你也可以做更多这样的查询

Model
.where('field1').gte(25)
.where().in([])
.select('field1', 'field2', 'field13')
.skip(20)
.limit(10)
.asc('field1')
.exec(callback);
Run Code Online (Sandbox Code Playgroud)

您可以参考文档了解更多详情


Nee*_*ati 8

不确定,但我认为这对你有帮助.

var perPage = 10
  , page = Math.max(0, req.param('page'))

Event.find()
    .select('name')
    .skip(perPage * page)
    .limit(perPage)
    .sort({
        name: 'asc'
    })
    .exec(function(err, events) {
        Event.count().exec(function(err, count) {
            res.render('events', {
                events: events,
                page: page,
                pages: count / perPage
            })
        })
    })
Run Code Online (Sandbox Code Playgroud)

或者看

如何在Node.js中使用Mongoose进行分页?

  • 我认为最好的方法是`skip((pageNumber - 1) * limit)`,它会跳过`nothing (or 0) for page 1, limit for page 2, limit + limit for page 3, limit + limit + limit for第 4 页,第 n 页的限制 * (n - 1) (3认同)
  • 关闭...但正如@ckwagaba 所说,这一直跳过前 10 个。使用 (page - 1) * 跳过正确的算法。 (2认同)