【发布时间】:2021-03-25 22:23:35
【问题描述】:
我需要更新嵌套在我的用户文档中的一个字段,该字段包含一组部件对象,以添加新部件。一部分对象如下所示:
{
partId: 871838,
partNum: '87087',
partName: 'Brick Special 1 x 1 with Stud on 1 Side',
colorId: 0,
colorName: 'Black',
quantity: 10,
partImg: 'https:...'
}
我想将部件添加到数组中,但前提是用户尚未拥有它。我尝试使用 $addToSet,如下所示:
await User.updateOne(
{ username: username },
{ $addToSet: { parts: { $each: req.body.parts } } }
);
但这行不通,因为有时零件是相同的,但数量会有所不同,这足以将其视为不同的零件,因此会被添加。有没有办法指定通过哪个值来确定对象是否已经存在于数组中?
编辑:所以,我在文档中找到了这个:
您不能指定 MongoDB 只比较 文件以确定该文件是否是 现有数组元素
所以这意味着 $addToSet 不适合我的情况......现在我不知道该怎么做。
【问题讨论】: