前言
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...