前言
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具
那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考:
演示
描述场景
更新购物车数量与勾选状态
业务逻辑
查询到当前用户的购物车对象Cart,更新前端传递过来的quantity与selected字段
方法一
score');
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相当于
方法二
score');
Cart.findOne({
_id: req.body.cart._id,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对象复制,面向整个对象操作更加灵活,适用于字段多且不确定的场景
结论
需求总是在变的,所以我一般采用第二种。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持。