5

我希望实现一个固定长度的基于时间的队列,其中旧项目从后面弹出。

例如,我有一个限制为 10 项的评论列表,第 11 项进入,最旧的 on 落在后面。

如果猫鼬不支持,有人可以告诉我一些我可以使用的技巧吗?(前/等)

非常感谢

4

3 回答 3

3

MongoDB 引入了上限数组(从 v2.4 开始),可用于限制数组中的元素数量。

您可以在元素数量限制处看到一些示例

于 2013-07-10T10:25:01.100 回答
1
db.myCollection.update({"arrayField.10": {$exists: true}}, {$pop: {"arrayField": 1}})

“a.10”键检查“arrayField”中是否存在元素 10,这意味着数组大小等于或大于 10。如果存在,则以原子方式从数组背面弹出 1 个元素。

可能不是您的情况的最佳解决方案,但希望这可能会让您朝着正确的方向前进。

于 2013-07-10T08:55:52.013 回答
1

根据Mongoose Wiki - 它现在支持 MongoDB 的上限数组:

Mongoose 3.6 支持这些新的 MongoDB 2.4 数组运算符。

Model.update(matcher, { $push: { docs: { $each: [{ x: 1 }, { x: 23 }, { x: 5 }], $slice: -2, $sort: { x: 1 }}}})

于 2014-02-16T01:15:21.340 回答