sql >> Databáze >  >> NoSQL >> MongoDB

Aktualizujte jedno pole v MongoDB v jediném vloženém dokumentu

Pravděpodobně můžete použít poziční operátor k identifikaci prvku pole:

Takže možná něco jako:

User.collection.update(
    { :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
    { :$set => { 'alert.matches.$' => matches } }
)

Ale jak Sergio poznamenává, je obtížné vylepšit strukturu vašich dokumentů na základě omezených informací ve vaší otázce.

Zdá se, že poté, co jsem odpověděl, přišly další informace a vypadá to takto:

{ :$set => { 'alerts.$.matches' => ... } }

je to, co potřebujete. A budete muset zahrnout :matches v dotazu tak, že $ má na co odkazovat.




  1. Denormalizace dat v MongoDB

  2. K deferencování Mongoengine dochází po použití select_related()

  3. Jak můžeme zajistit integritu dat v mongoDb?

  4. Analog pro skupinu concat v sql