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配合Node.js運算MongoDB的基礎教學_node.js
Node.js的MongoDB驅動Mongoose基本上使用教學_node.js
以上是兩種mongoose更新物件的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!