问题描述
初始化 ’ update = {’$inc’: {'Prodects.$.price': 1}},’但无法传入update 参数中, 结果为’$inc’: {} ,版本号
node v6.6.0 'mongoose': '^4.7.5',MongoDB shell version v3.4.0app.js
#开启调试模式var mongoose = require(’mongoose’).set(’debug’, true);;router.js
router.get(’/test’, function(req, res, next){var conditions = {'Prodects.id': '2'}, update = {’$inc’: {'Prodects.$.price': 1}}, options = {upsert:true};CartModel.update(conditions, update, options, function(err) { });});
终端显示第二个参数的数据为空, 但是声明的是一个对象
hotnode node process restarted{ ’$inc’: { ’Prodects.$.price’: 1 } }Mongoose: carts.update({ ’Prodects.id’: ’2’ }, { ’$inc’: {}, ’$setOnInsert’: { __v: 0 } }, { upsert: true })第二个参数 ---- ’$inc’: {} , 初始化 ’ update = {’$inc’: {'Prodects.$.price': 1}},’
以至于无法更新数据库中的数据
问题解答
回答1:Mongoose遇到的问题汇总
var conditions = {'Prodects.id': '2'}, update = {’$inc’: {'Prodects.$.price': 1}}, options = {upsert:true}; CartModel.update(conditions, update, options, function(err) { });});
打印结果
{ ’$inc’: { ’Prodects.$.price’: 1 } }Mongoose: carts.update({ ’Prodects.id’: ’2’ }, { ’$inc’: {}, ’$setOnInsert’: { __v: 0 } }, { upsert: true })
以下方式可以
Model.collection.update(conditions, update, function(err, result){ res.send(result)});回答2:
Mongoose的文档写的有些太过简洁,所以有很多使用中的问题。
希望大家一起努力,整理出一些Mongoose好的中文文档出来。
Love MongoDB! Have Fun!