MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да актуализирам вграден документ във вложен масив?

Според описанието на вашия проблем тук:

For example I want to change the quantity of the item 10 in Invoice 123456789. Току-що промених Quantity до 3. Тук можете да извършвате каквито желаете операции. Просто трябва да вземете под внимание как използвах arrayFilters тук.

Опитайте тази заявка:

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

Горната заявка е успешно изпълнена от mongo shell (Mongo 3.6.3). И виждам този резултат:

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

Това ли искаше?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Използване на @Resource инжектиране за Mongo db, вътре в Web Bundle в OSGI, под Liberty Profile

  2. MongoDB / Pymongo заявка с дата и час

  3. Не мога да създам работещ проект meteor.js върху скитническа кутия

  4. Има ли все пак да откриете кои ip адреси са свързани към db?

  5. Парола и потребителско име за MongoDb и morphia