我想在NodeJS中编写一个猫鼬查询,这将更新DB中的文档(如果存在于DB中),否则将以不同的值插入DB(如果不存在于DB中)。例如,当我插入要设置userStatus字段为“新”的数据,如果数据存在时想要将userStatus字段设置为“旧”,我有一个用户集合
UserModel.updateOne({_id: req.params.id},
{$set: { status: "old" }, $setOnInsert:{ status: "new" }},
{upsert: true})
但是它给出错误消息errmsg:'更新路径\'status \'会在\'status \'处产生冲突,这是不可能在单个查询中完成的