Mongoose是否支持固定队列数组的概念

时间:2013-07-10 07:31:23

标签: node.js mongodb mongoose

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

例如,我有一个限制为10个项目的评论列表,第11个项目进入,最老的项目从后面掉落。

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

非常感谢

3 个答案:

答案 0 :(得分:3)

MongoDB引入了capped arrays(来自v2.4),可用于限制数组中的元素数量。

你可以看一些例子 limit number of elements

答案 1 :(得分: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}}}})

答案 2 :(得分:0)

db.myCollection.update({"arrayField.10": {$exists: true}}, {$pop: {"arrayField": 1}})

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

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