Tutorial MongoD...LOG MASUK
Tutorial MongoDB
pengarang:php.cn  masa kemas kini:2022-04-21 17:49:03

Operasi atom MongoDB


Mongodb tidak menyokong urus niaga, jadi sila beri perhatian kepada perkara ini apabila menggunakannya dalam projek anda. Tidak kira apa reka bentuk, tidak memerlukan mongodb untuk memastikan integriti data.

Tetapi mongodb menyediakan banyak operasi atom, seperti penyimpanan dokumen, pengubahsuaian, pemadaman, dsb., yang semuanya merupakan operasi atom.

Apa yang dipanggil operasi atom bermakna sama ada dokumen itu disimpan ke Mongodb, atau ia tidak disimpan ke Mongodb Tidak akan ada situasi di mana dokumen yang ditanya tidak disimpan sepenuhnya.


Model Data Operasi Atom

Pertimbangkan contoh buku perpustakaan dan maklumat pembayaran berikut.

Contoh ini menggambarkan cara memastikan medan terbenam yang dikaitkan dengan operasi atom (kemas kini: kemas kini) disegerakkan dalam dokumen yang sama.

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 boleh menggunakan kaedah db.collection.findAndModify() untuk menentukan sama ada buku boleh diselesaikan dan mengemas kini maklumat penyelesaian baharu.

Benamkan medan tersedia dan daftar keluar dalam dokumen yang sama untuk memastikan medan ini dikemas kini secara serentak:

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

Perintah biasa untuk operasi atom

$set

digunakan untuk menentukan kunci dan mengemas kini nilai kunci Jika kunci itu tidak wujud, buatnya.

{ $set : { field : value } }

$unset

digunakan untuk memadamkan kunci.

{ $unset : { field : 1} }

$inc

$inc boleh menambah atau menurunkan kunci dalam dokumen yang nilainya adalah angka (hanya boleh menjadi nombor yang memenuhi keperluan).

{ $inc : { field : value } }

$push

Penggunaan:

{ $push : { field : value } }

Tambah nilai medan mesti daripada jenis tatasusunan Jika medan tidak wujud, tatasusunan baharu akan ditambahkan .

$pushAll

Sama seperti $push, kecuali berbilang nilai boleh ditambahkan pada medan tatasusunan pada satu masa.

{ $pushAll : { field : value_array } }

$pull

Memadamkan nilai yang sama dengan nilai daripada medan tatasusunan.

{ $pull : { field : _value } }

$addToSet

Menambah nilai pada tatasusunan dan hanya menambahnya jika nilai itu tiada dalam tatasusunan.

$pop

Padamkan elemen pertama atau terakhir tatasusunan

{ $pop : { field : 1 } }

$rename

Ubah suai nama medan

{ $rename : { old_field_name : new_field_name } }

$ bit

operasi bit, jenis integer

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

operator offset

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

Laman web PHP Cina