MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Tambahkan bidang baru ke setiap dokumen dalam koleksi MongoDB

Sama seperti memperbarui bidang koleksi yang ada, $set akan menambahkan bidang baru jika bidang yang ditentukan tidak ada.

Lihat contoh ini:

> db.foo.find()
> db.foo.insert({"test":"a"})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> item = db.foo.findOne()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }

EDIT:

Jika Anda ingin menambahkan bidang_baru ke semua koleksi Anda, Anda harus menggunakan pemilih kosong, dan menyetel multi flag ke true (param terakhir) untuk memperbarui semua dokumen

db.your_collection.update(
  {},
  { $set: {"new_field": 1} },
  false,
  true
)

EDIT:

Dalam contoh di atas 2 bidang terakhir false, true menentukan upsert dan multi bendera.

Peningkatan: Jika disetel ke true, buat dokumen baru saat tidak ada dokumen yang cocok dengan kriteria kueri.

Multi: Jika disetel ke true, perbarui beberapa dokumen yang memenuhi kriteria kueri. Jika disetel ke false, perbarui satu dokumen.

Ini untuk versions Mongo sebelum 2.2 . Untuk versi terbaru, kueri diubah sedikit

db.your_collection.update({},
                          {$set : {"new_field":1}},
                          {upsert:false,
                          multi:true}) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Migrasi MongoDB ke DynamoDB, Bagian 2

  2. kueri mongodb dengan AND dan OR

  3. Otentikasi MongoDB 3.2 gagal

  4. Tidak dapat memulai/meluncurkan mongo db

  5. Permintaan Mongodb bulan tertentu | tahun bukan tanggal