É 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
}
});