最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

两种mongoose更新对象的方法

来源:懂视网 责编:小采 时间:2020-11-27 20:10:00
文档

两种mongoose更新对象的方法

两种mongoose更新对象的方法:Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具最近在使用mongoose的时候发现了一个之前一直没注意的知识点,本文主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要
推荐度:
导读两种mongoose更新对象的方法:Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具最近在使用mongoose的时候发现了一个之前一直没注意的知识点,本文主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具最近在使用mongoose的时候发现了一个之前一直没注意的知识点,本文主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要的朋友可以参考下。希望能帮助到大家。

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

描述场景

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

业务逻辑

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

方法一

var _ = require('underscore');
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相当于

 {
 quantity: req.body.cart.quantity,
 selected: req.body.cart.selected
 }

方法二

var _ = require('underscore');
Cart.findOne({
 _id: req.body.cart._id,
 user: user
 }, function(err, 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对象复制,面向整个对象操作更加灵活,适用于字段多且不确定的场景

结论

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

文档

两种mongoose更新对象的方法

两种mongoose更新对象的方法:Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具最近在使用mongoose的时候发现了一个之前一直没注意的知识点,本文主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要
推荐度:
标签: 方法 更新的 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top