MongoDB / mongoose:使用$ addToSet避免数组中的相同对象

时间:2019-03-09 00:47:29

标签: javascript node.js mongodb mongoose

因此,我有一个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 }

0 个答案:

没有答案
相关问题