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

създаване на mongodb документ с поддокументи атомарно?

Актуализирайте с upsert=true може да се използва за извършване на атомно „вмъкване или актуализиране“ (http://docs.mongodb.org/manual/core/update/#update-operations-with-the-upsert-flag ).

Например, ако искаме да се уверим, че документ в предната колекция има конкретен url се вмъква точно веднъж, можем да изпълним нещо като:

db.Front.update(
    {url: 'http://example.com'},
    {$set: {
       url: 'http://example.com'},
       found: true
    }
)

Операциите върху един документ в MongoDB винаги са атомарни. Ако правите актуализации, които обхващат множество документи, не е гарантирана атомарност. В такива случаи можете да се запитате:наистина ли трябва операциите да бъдат атомарни? Ако отговорът е не, вероятно ще се ориентирате в работата с потенциално непоследователни данни. Ако отговорът е да и искате да се придържате към MongoDB, вижте шаблона за проектиране на Двуфазови ангажименти .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Урок за MongoDB:Свързване с MongoDB в Scala

  2. Мангуста | Мидълуер | Операции за връщане назад, извършвани от пре/след кукички, когато се изведе грешка

  3. Как да получите множество JSON обекти с помощта на nodejs и mongoose?

  4. Как променяте потребителските разрешения на MongoDB?

  5. MongoDB $sqrt