mongoose,如何查询集合下面的集合,进行分页,如图
发布于 7 年前 作者 pengrongjie 3681 次浏览 来自 问答

想要查询article下面的comment进行分页

模型如下 image.png 具体数据 image.png 现在的article分页

// 查找所有文章
router.get('/admin_article', function(req, res, next){
  var page = Number(req.query.page || 1);
  var limit = 4;
  var pages = 0;
  Model.Article.count().then(function(count){
    pages = Math.ceil(count/limit); //总数据除以每页限制数据=页数
    page = Math.min(page,pages);
    page = Math.max(page,1);
    var skip = (page-1)*limit;

    Model.Article.find({}).sort({_id: -1}).limit(limit).skip(skip).then(function(doc){
      console.log(doc);
        responseData.code = 200;
        responseData.message = '查找所有文章成功';
        responseData.data = doc;
        responseData.count = count;
        responseData.limit = limit;
        responseData.page = page;
        responseData.pages = pages;
        responseData.skip = skip;
        console.log(responseData);
        res.json(responseData);
    })
  })
})

问题, 如何给article,集合下面的,comment进行分页,就像查询article分页一样

4 回复

!!!∑(゚Д゚ノ)ノ为什么不另起一张表存 comment的数据呢,个人觉得这样方便很多啊

数组切片 slice ?

db.posts.find( {}, { comments: { $slice: [ 20, 10 ] } } )

第一个值表示要跳过的数组中的项目数,第二个值表示要返回的项目数

From PWA CNode

下面说两个方法,都要用到populate: 另建一个comment集合,article集合里只存comment的ID,如:[1,2,3];另建两个集合,一个comment,一个relation集合。另外提醒一下,你这里untitled1.png应该写成Date.now,否则取到的时间是你服务器最近一次启动的时间。

回到顶部