MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como atualizar uma matriz de subdocumentos em uma coleção do MongoDB no MeteorJS


É importante lembrar que o modificador é apenas um objeto. O seguinte literal de objeto:
{
  a: 1, b: 1,
  a: 2, b: 2
}

avalia para:
{ a: 2, b: 2 }

porque as chaves são atribuídas duas vezes e a última gravação vence.

Em seu código, a mesma ideia se aplica ao $addToSet e $inc chaves. Para corrigi-lo, escreva sua update assim:
Ideas.update("bKXXrpYmppFBfq9Kx", {
  $addToSet: {
    score: { userId: someUser._id, score: 1 },
    votedOnBy: someUser._id
  },
  $inc: {
    overallScore: 1,
    timesVotedOn: 1
  }
});