MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Дали преместването на документи между колекции е добър начин за представяне на промените в състоянието в MongoDB?

Да, това е по проект. MongoDB изрично не предоставя присъединявания или транзакции. Премахване + Запазване е форма на транзакция.

Тук наистина имате две опции с ниска сложност, като и двете включват findAndModify .

Опция №1:една колекция

Въз основа на вашето описание вие ​​всъщност изграждате опашка с някои допълнителни функции. Ако използвате една колекция, тогава използвате findAndModify за актуализиране на състоянието на всеки елемент, докато се обработва.

За съжаление, това означава, че ще загубите това:...че "входящата" колекция може да се поддържа много малка и бърза по този начин .

Вариант №2:две колекции

Другата опция е основно двуфазен ангажимент, използващ findAndModify .

Разгледайте документите за този тук .

След като даден елемент бъде обработен в A задавате поле, за да го маркирате за изтриване. След това копирате този елемент в B . Веднъж копиран в B след това можете да премахнете елемента от A .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo db docker изображение неуспешно удостоверяване

  2. Не може да се свърже с mongodb чрез ip на машината

  3. Може ли mongo да връща документи с празни/липсващи полета в края във възходящ ред?

  4. връщане разрешава грешка във функцията на възела

  5. Преименувайте поле в колекция MongoDB