猫鼬在一个数据库调用中保存条件?



我想使用猫鼬将请求正文保存/插入到我的mongodb,但是有一个条件是,我只允许在字段存在且字段值为"free">时才允许保存。

到目前为止,我尝试的是获取该记录,然后制定条件,然后在满足条件时保存。 但是,Mongoose 中是否有解决方法将其减少为一个数据库调用,只是为了提高效率?

这是我当前的代码:

let item = item.find({userId: req.body.userId);
if(item.status == 'free') myItem.save();

您可以用户更新一个存在用户 ID 且状态等于 free ,如果不存在且状态不等于空闲,则不会更新任何文档。

如果要检索项目数据,可以将updateOne替换为findOneAndUpdate

model.updateOne({ userId: req.body.userId ,status: 'free' },
itemData , 
{ runValidators: true }, function(err, res) {
});

请将项目数据替换为新的项目数据;

最新更新