我想使用猫鼬将请求正文保存/插入到我的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) {
});
请将项目数据替换为新的项目数据;