因此,我有一个MongoDB用户文档,并且该对象具有技能数组属性,该属性具有以下结构的对象:
{ name: "javascript", points: 1 }
我现在有一个示例,我想向用户添加技能,但是当该技能已经存在于user.skills数组中时,我就不想再次添加它。不幸的是,尽管数组中已经存在相同的对象(所以{ name: "javascript", points: 1 }
),但是使用下面的方法仍然可以提高技能。可能是因为即使对象以这种方式出现也并不相同,但是你们知道一种很好的替代方法吗?
const user = await User.findByIdAndUpdate({
_id: userId
},
{ $addToSet: { skills: { $each: newSkills } } },
{
new: true
});
newSkills是{ name: "javascript", points: 1 }