Ограничение количества объектов в коллекции MongoDB? - PullRequest
0 голосов
/ 07 мая 2020

Ответ: коллекции без ограничений , потому что я хочу обновлять эти данные в реальном времени, поэтому я просто сделал это и каждый раз получал ошибки о том, что «вы не можете изменить размер коллекции et c». Итак ... Я хочу ограничить количество объектов в моей коллекции. Например, если я установил ограничение на 3 и если у меня уже есть 3 объекта в моей коллекции, я хочу удалить старый.

Новый элемент: 9

Коллекция до обновления: 3, 2 , 7 Сборник после обновления: 2, 7, 9

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вы можете:

  • Вставить новый документ
  • Запустить запрос, чтобы определить самый старый документ, который вам не нужен
  • Удалить все документы, возраст которых самый старый или старше

... в транзакции.

0 голосов
/ 07 мая 2020

Вы можете нарезать это.

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)

...