Najlepszy samouczek MongoDB operacje atomowe W 2024 r. W tym samouczku możesz dowiedzieć się Atomic model danych,Operacje atomowe często używane polecenia,
MongoDB nie obsługuje transakcji, w związku z tym, w zakresie stosowania danego projektu, należy zwrócić uwagę na ten punkt. Niezależnie od projektu, nie pytamy MongoDB zapewnienia integralności danych.
Ale MongoDB zapewnia wiele operacji atomowych, takich jak zapisywanie dokumentu, modyfikować, usuwać itd., Są operacje atomowe.
Albo jest to tak zwana operacja atomowa aby zapisać dokument na MongoDB, czy nie zapisany MongoDB, dokument nie musi zapytać nienaruszone nie stanie.
Rozważmy następujący przykład książki, biblioteki i informacji o transakcji.
W jednym z przykładów ilustruje sposób, aby zapewnić, że ten sam dokument osadzony dziedzin pokrewnych operacje atomowe (aktualizacja: aktualizacja) pola są zsynchronizowane.
book = { _id: 123456789, title: "MongoDB: The Definitive Guide", author: [ "Kristina Chodorow", "Mike Dirolf" ], published_date: ISODate("2010-09-24"), pages: 216, language: "English", publisher_id: "oreilly", available: 3, checkout: [ { by: "joe", date: ISODate("2012-10-15") } ] }
metodę db.collection.findAndModify () można użyć do określenia, czy książki mogą być aktualizowane o nowe osady i informacji rozliczeniowych.
Osadzony w tym samym dokumencie dostępne i kasowych pól w celu zapewnienia, że te pola są zsynchronizowane aktualizacji:
db.books.findAndModify ( { query: { _id: 123456789, available: { $gt: 0 } }, update: { $inc: { available: -1 }, $push: { checkout: { by: "abc", date: new Date() } } } } )
Jest on używany do określenia klucza i zaktualizować klucz, jeśli klucz nie istnieje i tworzyć.
{ $set : { field : value } }
Aby usunąć klucz.
{ $unset : { field : 1} }
$ Inc może być wartością liczbową dokumentu (tylko w celu spełnienia wymagań cyfrowej) kluczy, aby zwiększyć lub operacji zmniejszania.
{ $inc : { field : value } }
Zastosowanie:
{ $push : { field : value } }
Wartością dodaną do pola, aby wejść do środka, musi być zadaniem pole typu array, jeśli pole nie istnieje, to nowy typ tablicy dodał.
Dolarów naciśnięciem, ale raz można dołączyć wiele wartości do pola tablicy.
{ $pushAll : { field : value_array } }
Aby usunąć pole z tablicy wartości równej wartości.
{ $pull : { field : _value } }
Dodanie wartości do tablicy, i tylko wtedy, gdy wartość nie mieści się w tablicy, aby zwiększyć.
Pierwszy i ostatni element tablicy usunięte
{ $pop : { field : 1 } }
Zmienić nazwę pola
{ $rename : { old_field_name : new_field_name } }
Operacje bitowe, typ całkowity
{$bit : { field : {and : 5}}}
> t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] } > t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1}}, false, true ) > t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] }