只有当某些东西不在其中时才添加到数组中?

时间:2016-10-15 06:34:08

标签: javascript node.js mongodb express mongoose

我正在尝试将一个类插入到学生的类数组中,但前提是该类已经没有了。我读过upsert处理这个问题,但它将类添加到数组中,无论它是否已存在。有人能引导我朝着正确的方向前进吗?

Student.findOneAndUpdate(
    query,
    {$push: {"classes": {class_id: class_id, class_title: class_title, class_instructor: class_instructor}}},
    {safe: true, upsert: true},
    callback
);

1 个答案:

答案 0 :(得分:1)

使用$ ne

Student.findOneAndUpdate(
    {"classes.class_id":{$ne: class_id}}
    {$addToSet: {"classes": {class_id: class_id, class_title: class_title, class_instructor: class_instructor}}},
    {safe: true,},
    callback
)