2017-09-12 79 views
0

我有这个功能我moongose +的MongoDB:MongoDB的聚集查找记录限制

Blog.aggregate([{ 
       "$match": {"user_id": userblog}}, 
       { 
       "$lookup": { 
        from: "comments", // collection name in db 
        localField: "_id", 
        foreignField: "blogid", 
        as: "comments" 
       },     
      }]).exec(function(err, docs) { 


      }); 

这工作完全,但我怎么可以限制意见和retrive最后10条记录?非常感谢。马可。

+0

您正在寻找['$ slice'(https://docs.mongodb.com/手动/参考/运营商/聚集/切片/)。 '$ lookup'正在返回一个数组,所以这就是你“限制”的事情。在某个地方必须有重复,但现在搜索正在让我失望。仍然应该有一些事情在这之前,一个花生只是盲目地发布'限额'而没有真正阅读问题。 –

回答

0

只需添加限制到集合:

Blog.aggregate([{ 
       "$match": {"user_id": userblog}}, 
       { 
       "$lookup": { 
        from: "comments", // collection name in db 
        localField: "_id", 
        foreignField: "blogid", 
        as: "comments" 
       }, 
       { 
        "$limit" : 10 
       }     
      }]).exec(function(err, docs) { 


      }); 
+0

很确定问题是要求“评论集合中的最后10个”,因为这实际上是问题中的文字所说的内容。 –

+0

对不起,这是真的!最后10个来自评论集合! –

+0

不要在猫鼬工作有错误}, { “$ limit”:10 } –

1

加限制你的代码

Blog.aggregate([{ 
     "$match": {"user_id": userblog}}, 
     { 
     "$lookup": { 
      from: "comments", // collection name in db 
      localField: "_id", 
      foreignField: "blogid", 
      as: "comments" 
     } 
    }]).limit(10).exec(function(err, docs) { 

    }); 
+0

place lean().exec(function(err,doc))它将删除所有的getter和setter并给你普通文件 –

+0

不适用于猫鼬! –

+0

**编辑我的评论,所以请检查** – Vignesh