国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

mongoose更新對象的兩種方法示例比較

2019-11-19 14:41:41
字體:
來源:轉載
供稿:網友

前言

Mongoose是在node.js異步環境下對mongodb進行便捷操作的對象模型工具

那么要使用它,首先你得裝上node.js和mongodb,關于mongodb的安裝和操作介紹可以參考://m.survivalescaperooms.com/article/80296.htm

演示

描述場景

更新購物車數量與勾選狀態

業務邏輯

查詢到當前用戶的購物車對象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對象復制,面向整個對象操作更加靈活,適用于字段多且不確定的場景

結論

需求總是在變的,所以我一般采用第二種。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虹口区| 浦城县| 方正县| 临猗县| 盘山县| 亚东县| 阜康市| 台安县| 莒南县| 洪湖市| 南京市| 资溪县| 施甸县| 博爱县| 浦县| 文成县| 文登市| 磴口县| 西丰县| 迭部县| 喀喇| 孟津县| 嵊州市| 宜兰市| 南召县| 南木林县| 永德县| 阿拉善左旗| 邮箱| 鹰潭市| 定南县| 浮梁县| 磐安县| 古浪县| 城口县| 兴文县| 循化| 平塘县| 宝丰县| 茌平县| 荆门市|