Latest web development tutorials

operasi atom MongoDB

mongodb tidak mendukung transaksi, oleh karena itu, dalam penerapan proyek Anda, memperhatikan hal ini. Apapun desain, kita tidak meminta mongodb memastikan integritas data.

Tapi mongodb memberikan banyak operasi atom, seperti menyimpan dokumen, mengubah, menghapus, dll, adalah operasi atom.

Entah ini adalah apa yang disebut operasi atom untuk menyimpan dokumen ke MongoDB, atau tidak disimpan ke MongoDB, dokumen tidak harus query utuh tidak akan terjadi.


model data atom

Perhatikan contoh berikut, buku-buku perpustakaan dan informasi transaksi.

Dalam salah satu contoh menggambarkan bagaimana memastikan bahwa dokumen tertanam bidang yang sama terkait operasi atom (update: update) bidang disinkronisasi.

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") } ]
        }

Anda dapat menggunakan metode db.collection.findAndModify () untuk menentukan apakah buku dapat diperbarui dengan pemukiman baru dan informasi penagihan.

Tertanam dalam dokumen yang tersedia dan checkout bidang yang sama untuk memastikan bahwa bidang ini disinkronkan update:

db.books.findAndModify ( {
   query: {
            _id: 123456789,
            available: { $gt: 0 }
          },
   update: {
             $inc: { available: -1 },
             $push: { checkout: { by: "abc", date: new Date() } }
           }
} )

operasi atom perintah yang umum digunakan

$ Set

Hal ini digunakan untuk menentukan kunci dan informasi kunci, jika kunci tidak ada dan menciptakan.

{ $set : { field : value } }

$ Unset

Untuk menghapus kunci.

{ $unset : { field : 1} }

$ Inc

$ Inc dapat menjadi nilai numerik dari dokumen (hanya untuk memenuhi persyaratan digital) kunci untuk meningkatkan atau operasi penurunan.

{ $inc : { field : value } }

$ Dorong

penggunaan:

{ $push : { field : value } }

Nilai tambah ke lapangan untuk masuk ke dalam, itu harus menjadi tipe array pekerjaan lapangan, jika lapangan tidak ada, tipe array baru ditambahkan.

$ PushAll

Dengan $ dorongan, tetapi sekali Anda dapat menambahkan beberapa nilai dalam bidang larik.

{ $pushAll : { field : value_array } }

$ Pull

Untuk menghapus bidang dari array nilai nilai yang sama.

{ $pull : { field : _value } }

$ AddToSet

Menambahkan nilai ke array, dan hanya jika nilai tidak dalam array untuk meningkatkan.

$ Pop

Pertama atau elemen terakhir dari array dihapus

{ $pop : { field : 1 } }

$ Rename

Memodifikasi nama field

{ $rename : { old_field_name : new_field_name } }

$ Bit

operasi bit, tipe integer

{$bit : { field : {and : 5}}}

Operator pergeseran

> 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 } ] }