我有一个文档列出了按主题分隔的作者的帖子ID。这将产生如下文档:
{
_id: "sdkafjsadkfjads3023",
Author: "SomeGuy"
RecentPosts: {
"topic-1": {
Count: 4,
Posts: ["postitemid1","postitemid2","postitemid2","postitemid3"]
}
"topic-2": {
Count: 3
Posts: ["postitem5","postitem6","postitem8"]
}
}
}
我在大多数时间都在同一个更新中对每个帖子数组进行原子推送。我想要做的是始终将上面的数组限制为10个项目。这样,任何时候我都会对相同的主题/帖子做推..我甚至可能会问,或者我应该采取不同的方式吗?
提前致谢
答案 0 :(得分:0)
如果我理解正确上限收藏是你想要的。 http://www.mongodb.org/display/DOCS/Capped+Collections
答案 1 :(得分:0)
事实证明,这是MongoDB中一个长期存在的问题,自从使用$ slice运算符添加到MongoDB 2.4版本中以后。
db.students.update(
{ _id: 1 },
{ $push: { scores: { $each : [
{ attempt: 3, score: 7 },
{ attempt: 4, score: 4 }
],
$sort: { score: 1 },
$slice: -3
}
}
}
)
http://docs.mongodb.org/manual/tutorial/limit-number-of-elements-in-updated-array/