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

Bagaimana cara memperbarui dokumen yang disematkan ke dalam array bersarang?

Sesuai deskripsi masalah Anda di sini:

For example I want to change the quantity of the item 10 in Invoice 123456789. Saya baru saja mengubah Quantity ke 3. Anda dapat melakukan operasi apa pun di sini sesuai keinginan. Anda hanya perlu memperhatikan bagaimana saya menggunakan arrayFilters di sini.

Coba kueri ini:

db.collection.update(
 {"_id" : "12345678"},
 {$set:{"Invoices.$[element1].Items.$[element2].Quantity":3}},
 {multi:true, arrayFilters:[ {"element1._id": "123456789"},{ 
  "element2.Item": { $eq: 10 }} ]}
)

Kueri di atas berhasil dijalankan dari mongo shell (Mongo 3.6.3). Dan saya melihat hasil ini:

/* 1 */
{
"_id" : "12345678",
"Invoices" : [ 
    {
        "_id" : "123456789",
        "Currency" : "EUR",
        "DueTotalAmountInvoice" : 768.37,
        "InvoiceDate" : "2016-01-01 00:00:00.000",
        "Items" : [ 
            {
                "Item" : 10,
                "ProductCode" : "ABC567",
                "Quantity" : 3.0
            }, 
            {
                "Item" : 20,
                "ProductCode" : "CDE987",
                "Quantity" : 1
            }
        ]
    }, 
    {
        "_id" : "87654321",
        "Currency" : "EUR",
        "DueTotalAmountInvoice" : 768.37,
        "InvoiceDate" : "2016-01-01 00:00:00.000",
        "Items" : [ 
            {
                "Item" : 30,
                "ProductCode" : "PLO987",
                "Quantity" : 1,
                "Units" : "KM3"
            }, 
            {
                "Item" : 40,
                "ProductCode" : "PLS567",
                "Quantity" : 1,
                "DueTotalAmountInvoice" : 768.37
            }
        ]
    }
 ]
}

Apakah itu yang Anda inginkan?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 5 Cara Memasukkan Dokumen di MongoDB

  2. MongoDB memeriksa apakah id adalah BSON PHP yang valid

  3. Meteor MongoDB menemukan/mengambil masalah

  4. $in membutuhkan array sebagai argumen kedua, ditemukan:hilang

  5. MongoDB :Mengapa kita harus menutup kursor setelah digunakan?