mongoose更新对象的两种方法示例比较

前端之家收集整理的这篇文章主要介绍了mongoose更新对象的两种方法示例比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具

那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考:

演示

描述场景

更新购物车数量与勾选状态

业务逻辑

查询到当前用户的购物车对象Cart,更新前端传递过来的quantity与selected字段

方法

score'); Cart.findOneAndUpdate({ _id: req.body.cart._id,user: user },_.pick(req.body.cart,'quantity','selected'),{ new: true },function(err,updatedCart) { res.send( utils.json({ data: updatedCart }) ); } );

注:_.pick相当于

方法

score'); Cart.findOne({ _id: req.body.cart._id,cart) { if (err) { console.log(err); } // 复制对象 _.extend(cart,req.body.cart); cart.save(function(err,updatedCart) { res.send( utils.json({ data: updatedCart }) ); }); } );

对比

第一种代码使用findOneAndUpdate只用了一步,更加简洁,适用于更新的字段少且非常明确的场景

第二种先findOne再对entity进行save操作,利用了underscore对象复制,面向整个对象操作更加灵活,适用于字段多且不确定的场景

结论

需求总是在变的,所以我一般采用第二种。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持

原文链接:https://www.f2er.com/js/34626.html

猜你在找的JavaScript相关文章