Điều quan trọng cần nhớ là bổ ngữ chỉ là một đối tượng. Đối tượng sau theo nghĩa đen:
{
a: 1, b: 1,
a: 2, b: 2
}
đánh giá:
{ a: 2, b: 2 }
vì các khóa được gán hai lần và lần ghi cuối cùng sẽ thắng.
Trong mã của bạn, ý tưởng tương tự cũng áp dụng cho $addToSet
và $inc
chìa khóa. Để khắc phục, hãy viết update
của bạn như thế này:
Ideas.update("bKXXrpYmppFBfq9Kx", {
$addToSet: {
score: { userId: someUser._id, score: 1 },
votedOnBy: someUser._id
},
$inc: {
overallScore: 1,
timesVotedOn: 1
}
});