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

Mongo memperbarui semua catatan dengan bidang yang nol

Jika kolom nama tidak ada coba:

db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})

$set akan menambahkan bidang baru dengan nilai yang ditentukan, asalkan bidang baru tersebut tidak melanggar batasan jenis.

Jika ada dan null, atau tidak memiliki nilai yang ditetapkan:

db.collection.update({"name": null}, {"$set": {"name": "test"}})

Anda dapat menggabungkan kedua kueri menggunakan $or sebagai

db.collection.update(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)

Untuk MongoDB 3.2 dan yang lebih baru, gunakan updateMany() yang memperbarui banyak dokumen dalam koleksi berdasarkan filter:

db.collection.updateMany(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Perbarui elemen array mongo berdasarkan indeks dengan c-driver

  2. Menghasilkan Mongo ObjectId (_id) dengan waktu khusus?

  3. Tabel Azure Vs MongoDB di Azure

  4. Urutkan array dan tambahkan bidang peringkat di MongoDB

  5. Menggunakan SetFields dengan driver MongoDB C# 2.0