【发布时间】:2011-10-07 21:05:55
【问题描述】:
我有一个收藏要查询如下:
- 归还所有文件
- 最多 2 cmets(例如,切片,0、1 或 2 cmets)
- 所有 cmets 的视图必须 > 10
似乎我需要创建一个函数来单独评估每个文档,但不清楚这是如何完成的,特别是考虑到我想做一个切片并返回最多 n 个符合该条件的项目。
示例架构:
{
title: "One",
comments: [
{
title: "comment1",
views: 9
},
{
title: "comment2",
views: 10
},
{
title: "comment3",
views: 11
},
{
title: "comment4",
views: 12
},
]
}
我想做这样的事情:
db.collection.find({"comments.views": {$gt: 10}}, {comments:{$slice: 2}})
但这会返回任何带有 > 10 个视图的评论的文档,然后切片 2 个 cmets...我想返回那些有 > 10 个项目的 cmets。我不能在客户端上做它并且使用 $slice 而不丢失一些 cmets,所以我需要在数据库上做它。想法?
【问题讨论】:
标签: mongodb