我需要为特定集合中的所有数据中的特定参数设置特定值。例如;我有一个数据库,我的架构有年龄和名称参数,我想更新每个人的年龄为5.我已经搜索了问题,但我找不到任何类似的情况。 我怎么能这样做,或者我可以用猫鼬或mongoclient或除了mongoshell之外的任何东西吗?我正在使用nodeJS mongoose并表达。
这是我的代码(当然它不起作用:)。
'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')
});
感谢您的时间和答案。
答案 0 :(得分:1)
如果您要使用 mongoose ,则应将 options 参数传递给更新功能,并指定您要使用{{1}更改所有匹配的文档}:
这应该有效:
{ multi: true }