MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zaktualizować osadzony dokument do zagnieżdżonej tablicy?

Zgodnie z opisem problemu tutaj:

For example I want to change the quantity of the item 10 in Invoice 123456789. Właśnie zmieniłem Quantity do 3. Możesz tutaj wykonać dowolne operacje, jak chcesz. Musisz tylko zwrócić uwagę na to, jak użyłem arrayFilters tutaj.

Wypróbuj to zapytanie:

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

Powyższe zapytanie zostało pomyślnie wykonane z powłoki mongo (Mongo 3.6.3). I widzę taki wynik:

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

Czy tego chciałeś?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. określanie lokalizacji $push w kolekcji za pomocą Pymongo

  2. Pole $concat z indeksem w $map mongodb?

  3. Jak ograniczyć usuwanie w MongoDB w celu zbierania relacji

  4. Wstaw wiele plików JSON do MongoDB za pomocą Pythona

  5. Funkcja MapReduce w MongoDB - Grupowanie dokumentu według ID