如何查询Mongodb中的最新评论

时间:2011-11-19 15:30:40

标签: mongodb

帖子文档如下所示:

{
  ...
  comments: [{
    _id:...
    body:...
    createDate:...
    },
    ...
  ]
}

如何从该系列中获取最近的10条评论?

2 个答案:

答案 0 :(得分:0)

如果您的评论始终处于可预测的顺序(即最新的或最新的),那么您可以使用$slice运算符在查询时仅返回完整comments字段的子集:

test> db.foo.save({name: "hello", comments: [1, 2, 3, 4, 5]})
test> db.foo.find({}, {comments: {$slice: 3}})
{ "_id" : ObjectId("4ec7d1c8e72da9b6f31e2528"), "name" : "hello", "comments" : [ 1, 2, 3 ] }
test> db.foo.find({}, {comments: {$slice: -3}})
{ "_id" : ObjectId("4ec7d1c8e72da9b6f31e2528"), "name" : "hello", "comments" : [ 3, 4, 5 ] }

您可以在http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields

了解有关控制返回字段的详情

答案 1 :(得分:-1)

无法从嵌入文档中部分选择项目。无论它将返回整个文档数组。您必须在应用程序代码中执行过滤器。这是唯一的方法。

但我建议有一个单独的评论集。那样你就可以跳过&限制集。