限制MongoDB集合中的对象数量?

时间:2020-05-07 00:58:42

标签: javascript mongodb

答案是未设置上限,因为我想实时更新该数据,所以我就这样做了,并且每次都会出现有关“您无法更改集合大小等”的错误。所以...我想限制集合中的对象数量。例如,如果我将限制设置为3,并且如果我的集合中已经有3个对象,那么我想将旧的对象淘汰掉。

新商品:9

更新前收集:3、2、7 更新后收集:2、7、9

2 个答案:

答案 0 :(得分:0)

您可以切片。

https://docs.mongodb.com/manual/reference/operator/update/slice/

开始

{ "_id" : 1, "scores" : [ 40, 50, 60 ] }

然后再切片3个项目...

db.students.update(
   { _id: 1 },
   {
     $push: {
       scores: {
         $each: [ 80, 78, 86 ],
         $slice: -5
       }
     }
   }
)

仅保留最后5个项目。

{ "_id" : 1, "scores" : [  50,  60,  80,  78,  86 ] }

因此,在您的情况下,只需切片(-3)

答案 1 :(得分:0)

您可以:

  • 插入新文档
  • 运行查询以确定不需要的最旧文档
  • 删除所有最老或更旧的文档

...正在交易中。