MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment mettre à jour un tableau de sous-documents sur une collection MongoDB dans MeteorJS

Il est important de se rappeler que le modificateur n'est qu'un objet. Le littéral d'objet suivant :

{
  a: 1, b: 1,
  a: 2, b: 2
}

évalue à :

{ a: 2, b: 2 }

car les clés sont attribuées deux fois et la dernière écriture l'emporte.

Dans votre code, la même idée s'applique au $addToSet et $inc clés. Pour résoudre ce problème, écrivez votre update comme ceci :

Ideas.update("bKXXrpYmppFBfq9Kx", {
  $addToSet: {
    score: { userId: someUser._id, score: 1 },
    votedOnBy: someUser._id
  },
  $inc: {
    overallScore: 1,
    timesVotedOn: 1
  }
});