如何更新集合/ MongoDb / Nodejs

时间:2017-08-01 07:40:31

标签: node.js mongodb mongoose mongoose-schema

我需要为特定集合中的所有数据中的特定参数设置特定值。例如;我有一个数据库,我的架构有年龄和名称参数,我想更新每个人的年龄为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')

});

感谢您的时间和答案。

1 个答案:

答案 0 :(得分:1)

如果您要使用 mongoose ,则应将 options 参数传递给更新功能,并指定您要使用{{1}更改所有匹配的文档}:

这应该有效:

{ multi: true }