最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mongoose更新對(duì)象的兩種方法示例比較

 更新時(shí)間:2017年12月19日 09:58:48   作者:黃秀杰  
最近在使用mongoose的時(shí)候發(fā)現(xiàn)了一個(gè)之前一直沒注意的知識(shí)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于mongoose更新對(duì)象的兩種方法,通過示例代碼將兩種方法進(jìn)行詳細(xì)的對(duì)比,以給大家更好的參考學(xué)習(xí),需要的朋友可以參考下。

前言

Mongoose是在node.js異步環(huán)境下對(duì)mongodb進(jìn)行便捷操作的對(duì)象模型工具

那么要使用它,首先你得裝上node.js和mongodb,關(guān)于mongodb的安裝和操作介紹可以參考:http://m.fzitv.net/article/80296.htm

演示

描述場(chǎng)景

更新購物車數(shù)量與勾選狀態(tài)

業(yè)務(wù)邏輯

查詢到當(dāng)前用戶的購物車對(duì)象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相當(dāng)于

 {
 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);
 }
 // 復(fù)制對(duì)象
 _.extend(cart, req.body.cart);
 cart.save(function(err, updatedCart) {
  res.send(
  utils.json({
   data: updatedCart
  })
  );
 });
 }
);

對(duì)比

第一種代碼使用findOneAndUpdate只用了一步,更加簡(jiǎn)潔,適用于更新的字段少且非常明確的場(chǎng)景

第二種先findOne再對(duì)entity進(jìn)行save操作,利用了underscore對(duì)象復(fù)制,面向整個(gè)對(duì)象操作更加靈活,適用于字段多且不確定的場(chǎng)景

結(jié)論

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 利用yarn實(shí)現(xiàn)一個(gè)webpack+react種子

    利用yarn實(shí)現(xiàn)一個(gè)webpack+react種子

    其實(shí)以前就寫過如何使用React-router和Webpack快速構(gòu)建一個(gè)react程序。后來發(fā)現(xiàn)版本太老,于是乎最近又重新組織了下結(jié)構(gòu),使用最近發(fā)布的yarn作為包管理工具,介紹下基本安裝步驟,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證

    Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證

    本篇文章主要介紹了Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易身份認(rèn)證示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • nodejs高大上的部署方式(PM2)

    nodejs高大上的部署方式(PM2)

    這篇文章主要介紹了nodejs高大上的部署方式(PM2) ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • node thread.sleep實(shí)現(xiàn)示例

    node thread.sleep實(shí)現(xiàn)示例

    這篇文章主要介紹了node thread.sleep實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • NodeJs操作MongoDB教程之分頁功能以及常見問題

    NodeJs操作MongoDB教程之分頁功能以及常見問題

    這篇文章主要給大家介紹了關(guān)于NodeJs操作MongoDB教程之分頁功能以及常見問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用NodeJs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 一步步教你利用Docker設(shè)置Node.js

    一步步教你利用Docker設(shè)置Node.js

    這篇文章主要介紹了利用Docker設(shè)置Node.js的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • NodeJS學(xué)習(xí)筆記之MongoDB模塊

    NodeJS學(xué)習(xí)筆記之MongoDB模塊

    nodejs是個(gè)強(qiáng)大的平臺(tái),有基本功能,而且可以掛很多模塊。我們現(xiàn)在需要和mongodb連接的驅(qū)動(dòng),就類似比如mysql的java驅(qū)動(dòng)一樣。nodejs有好幾個(gè)mongodb的第三方驅(qū)動(dòng)。和jdbc不一樣,沒有標(biāo)準(zhǔn)。所以需要到驅(qū)動(dòng)的網(wǎng)站上去了解學(xué)習(xí)怎么使用它訪問mongodb。
    2015-01-01
  • 淺談Koa服務(wù)限流方法實(shí)踐

    淺談Koa服務(wù)限流方法實(shí)踐

    本篇文章主要介紹了淺談Koa服務(wù)限流方法實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • pnpm的安裝和使用指南(推薦!)

    pnpm的安裝和使用指南(推薦!)

    如果你覺得npm比較慢,又不想用yarn,那么pnpm是一個(gè)很好的選擇,下面這篇文章主要給大家介紹了關(guān)于pnpm的安裝和使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • windows實(shí)現(xiàn)npm和cnpm安裝步驟

    windows實(shí)現(xiàn)npm和cnpm安裝步驟

    這篇文章主要介紹了windows實(shí)現(xiàn)npm和cnpm安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論

高雄市| 会昌县| 东乌珠穆沁旗| 永修县| 项城市| 汕尾市| 洪洞县| 额敏县| 视频| 洛浦县| 石台县| 天峻县| 永康市| 枣阳市| 申扎县| 福州市| 郓城县| 三原县| 山丹县| 旬邑县| 类乌齐县| 富川| 汾西县| 镇沅| 乐陵市| 涞水县| 广河县| 唐海县| 安丘市| 海原县| 庄浪县| 陆丰市| 郓城县| 合山市| 嘉义县| 枞阳县| 潜江市| 台北市| 望谟县| 囊谦县| 三穗县|