mongoose更新物件的兩種方法示例比較

2022-09-27 07:18:09 字數 857 閱讀 3223

前言

mongoose是在node.js非同步環境下對mongodb進行便捷操作的物件模型工具

那麼要使用它,首先你得裝上node.js和mongodb,關於mongodb的安裝和操作介紹可以參考:

演示描述場景

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

業務邏輯

查詢到當前使用者的購物車物件cart,更新前端傳遞過來的quantity與selected欄位

方法一var _ = require('underscore');

cart.findoneandupdate(, _.pick(req.body.cart, 'quantity',www.cppcns.com 'selected'), ,

function(err, updatedcart) )

); }

);注:_.pick相當於

方法二var _ = require('underscore');

cart.findone(, function(err, cart)

// 複製物件zwgfvjuop

_.extend(cart, req.body

cart.s**e(function(err, updatedcart) )

);});

});對比

第一種**使用findo程式設計客棧neandupdate只用了一步,更加簡潔,適用於更新的字段少且非常明確的場景

第二種先findone再對entity進行s**e操作,利用了underscore物件複製,面向整個物件操作更加靈活,適用於字段多且不確定的場景

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

總結本文標題: mongoose更新物件的兩種方法示例比較

本文位址:

mongoose連線mongodb的兩種方式

一 第一種方式 const mongoose require mongose const dbconn mongoose.createconnection mongodb localhost shop 第一步,建立與shop資料庫的連線,並返回mongoose物件 var schema mongoo...

兩種丟失更新的區別

第一類丟失更新 通過設定隔離級別可以防止 repeatable read a事務撤銷時,把已經提交的b事務的更新資料覆蓋了。這種錯誤可能造成很嚴重的問題,通過下面的賬戶取款轉賬就可以看出來 時間取款事務a 轉賬事務b t1 開始事務 t2 開始事務t3 查詢賬戶餘額為1000元 t4 查詢賬戶餘額為...

兩種建立String物件的區別

建立string物件,我們可以用兩種方式 1,string s new string victory 2,string s victory 那麼這兩種方式的區別是?先看乙個程式 string s1,s2 s1 new string we are students s2 new string we a...