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

Meteor mongo aktualizuje vnořené pole

První věc, kterou je zde třeba říci, je $elemMatch není ve vašem případě vyžadováno, protože chcete porovnat pouze jednu vlastnost pole. Tento operátor použijete, když potřebujete "dvě nebo více" vlastností ze stejného prvku pole, aby odpovídaly vašim podmínkám. V opačném případě jednoduše použijete „tečkovou notaci“ jako standard.

Druhý případ je zde s $push , kde tento konkrétní operátor znamená "přidat" prvky do pole. Ve vašem případě chcete pouze "aktualizovat", takže správný operátor je zde $set :

Activity.update(
    { "_id": activityId, "usersActivities.userId": Meteor.userId() },
    {
        "$set": {
            'usersActivities.$.startDate': start,
            'usersActivities.$.endDate': end
        }
    }
)

Tedy poziční $ Zde je operátor to, co se shoduje s "nalezeným indexem" z prvku pole a umožňuje $set operátora pro "změnu" prvků odpovídajících této "pozici".



  1. Účel a popis seznamu klientů Redis

  2. Jak funguje ServiceStack Redis při získávání dat

  3. Kdy vypnout průhledné obrovské stránky pro redis

  4. Jak povolit distribuovanou/clusterovou mezipaměť při použití redis s mezipamětí jarních dat