你能看一下这段代码吗?我有重复。
这是架构:
var Account = new Schema({
username: String,
votes:[
{
resId: String,
upvoted:[String]
}
]
});
我正在尝试将项目添加到投票
中var id = 'a';
var resId = 'b';
users.update({'_id':id},
{
'$addToSet': {'votes': {'resId': resId}}
}
);
问题是,在我只需要一次更新后,我会得到其中两个:
[
{
'username': 'Fat Gandalf',
'votes': [
{
'_id': objectID('11111111111111111111111'),
'resId': 'b',
'upvoted': []
}
]
},
{
'username': 'Fat Gandalf',
'votes': [
{
'_id': objectID('2222222222222222222222'),
'resId': 'b',
'upvoted': []
}
]
}
]
为什么$ addToSet不会在这里检查欺骗?这有解决方法吗?试过 $ push ,它也没用。非常感谢提前!