【发布时间】:2017-08-01 15:54:00
【问题描述】:
我需要为特定集合中的所有数据中的特定参数设置特定值。例如;我有一个数据库,我的架构有年龄和名称参数,我想将每个人的年龄更新为 5。我已经搜索了这些问题,但我找不到任何类似的案例。 我怎么能做到这一点,或者我可以用 mongoose 或 mongoclient 或除 mongoshell 之外的任何东西来做到这一点?我正在使用 nodeJS mongoose 和 express。
这是我的代码(当然它不起作用:)
'exports.changeAll = function (req, res) {
var reqparameter=req.body.parameter;
var database=req.params.database;
var collection=req.params.collection;
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://127.0.0.1::27017/' + project, {
useMongoClient: true,
})
.then(() => {
var Project = mongoose.model(collection, ProjectSchema, collection);
Project.update({},{$set:{parameter:reqparameter},function(err,done){
if (err)
res.send(err);
else
res.send('done' +reqparameter);
}
});
});
}
//reqparameter=请求的参数值//
我也尝试过 mongoclient:(它也不工作,错误是关于 db.update 不是函数)
MongoClient.connect(url, function (err, db) {
console.log(collection,database);
db.update({}, { $inc: { parameter: reqparameter }},{multi:true});
console.log('done')
});
感谢您的时间和回答。
【问题讨论】:
-
您的猫鼬示例没有使用
"mutli": true,并且您的普通节点驱动程序示例实际上没有使用任何集合对象,因此会出错。在您说“不起作用”之前,您实际上需要先进行有效操作。
标签: node.js mongodb mongoose mongoose-schema