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



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

例如,我有一个限制为10个项目的评论列表,第11个项目出现,最老的项目从后面掉下来。

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

非常感谢

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

您可以在上看到一些示例元素的极限数量

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

"a.10"键检查元素10是否存在于"arrayField"中,这意味着数组大小等于或大于10。如果是,则原子性地从数组后面弹出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}})

最新更新