我正在尝试将一个类插入到学生的类数组中,但前提是该类已经没有了。我读过upsert处理这个问题,但它将类添加到数组中,无论它是否已存在。有人能引导我朝着正确的方向前进吗?
Student.findOneAndUpdate(
query,
{$push: {"classes": {class_id: class_id, class_title: class_title, class_instructor: class_instructor}}},
{safe: true, upsert: true},
callback
);
答案 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
)