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

Актуализиране на полето в точен масив от елементи в MongoDB

Трябва да използвате 2 концепции:позиционен оператор на mongodb и просто използване на цифровия индекс за записа, който искате да актуализирате.

Позиционният оператор ви позволява да използвате условие като това:

{"heroes.nickname": "test"}

и след това препратете към намерения запис в масива така:

{"heroes.$  // <- the dollar represents the first matching array key index

Тъй като искате да актуализирате втория запис в масива в "items", а ключовете на масива са индексирани с 0 - това е ключът 1.

И така:

> db.denis.insert({_id:"43434", heroes : [{ nickname : "test",  items : ["", "", ""] }, { nickname : "test2", items : ["", "", ""] }]});
> db.denis.update(
    {"heroes.nickname": "test"}, 
    {$set: {
        "heroes.$.items.1": "new_value"
    }}
)
> db.denis.find()
{
    "_id" : "43434", 
    "heroes" : [
        {"nickname" : "test", "items" : ["", "new_value", "" ]},
        {"nickname" : "test2", "items" : ["", "", "" ]}
    ]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да се свържа с MongoDB в Windows?

  2. Как да премахнете всички елементи от колекция MongoDB

  3. Как да инсталирате MongoDB 4.2 на системи RedHat/ CentOS 7

  4. mongodb:намиране на най-високата числова стойност на колона

  5. mongodb $ в лимит