mongoose - 使用 MongooseJS 更新文档中的多个字段

标签 mongoose

假设我有一个如下所示的 ABC 架构:

ABC = mongoose.Schema ({
    name: String
    , x: String
    , y: String
    , z: String
});

如果名称匹配,我想更新字段 x 和 y。 MongooseJS 的“更新”API 有可能吗?

我尝试了以下但没有成功:

ABC = mongoose.createConnection(uri).model('ABC', ABC)
...
ABC.findOne({'name': abc.name}).exec(function(err, found) {
    if(found) {
        ABC.update({'name':abc.name}, {'x':abc.x, 'y':abc.y}).exec();
    }
    ...
});

即使这是可能的,只更新 ABC 对象并改用 ABC.save(abc) 是否更好?我在另一个线程中读到更新比保存更好,因为它更省事。是真的吗?

感谢任何建议!

最佳答案

是的,你可以更新多个字段,你只需要做这样的事情

ABC.update({ name: 'whatever' }, {
    x: 'value1',
    y: 'value2'
},
function(err, data) {
    if (err) {
    } else if (!data){
    } else {
        return res.send(200, data);
    }
});

关于mongoose - 使用 MongooseJS 更新文档中的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25632592/

相关文章:

node.js - 在 Typescript Node+Express 项目中使用模块中的 TypeScript 文件的正确方法?当前抛出错误 : Cannot find module

node.js - Mongoose 一次插入多条相关记录

javascript - 如何通过javascript使用mongoose从mongoDB获取字段的值

MongoDB 编辑数组中的对象(如果存在) - 否则推送一个新对象

node.js - 使用 Mongoose 查找和计算集合中的元素

node.js - Mongoose 中的排序无法正常工作

node.js - Mongoose 是否使用 exec() 执行?

node.js - MongoDB - OneToMany 与子外键

node.js - 具有多个 foreignFields 的 Mongoose 虚拟

node.js - promise 似乎没有按正确的顺序调用?