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

MongoDB:Perbarui bidang item dalam array dengan mencocokkan bidang lain dari item itu

Anda biasanya melakukan ini menggunakan operator posisi $ , seperti yang dijelaskan dalam jawaban atas pertanyaan ini:

Perbarui bidang dalam array elemen persis di MongoDB

Sayangnya, saat ini operator posisi hanya mendukung satu tingkat pencocokan dalam array.

Ada tiket JIRA untuk jenis perilaku yang Anda inginkan:https://jira.mongodb .org/browse/SERVER-831

Jika Anda dapat membuat Switches menjadi objek sebagai gantinya, Anda bisa melakukan sesuatu seperti ini:

db.colection.update(
    {
        _id: ObjectId("561ad881755a021904c00fb5"),
        "Switch.Ports.PortNumber": 5
    }, 
    {
        $set: {
            "Switch.Ports.$.Status": "Empty"
        }
    }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tambahkan item ke larik dokumen MongoDB di PyMongo tanpa penyisipan ulang

  2. Spring Data Mongo Query untuk melakukan query dengan beberapa bidang dan kembali dalam satu panggilan

  3. MongoDB Kueri lambat berdasarkan ID

  4. Mongoengine, mengambil hanya sebagian dari MapField

  5. Kerangka Agregasi MongoDB - Bagaimana Cara Mencocokkan Berdasarkan Rentang Tanggal, Kelompokkan Berdasarkan Hari, dan Rata-Rata Pengembalian Untuk Setiap Hari?