首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose save()在findById()之后不起作用

问Mongoose save()在findById()之后不起作用
EN

Stack Overflow用户
提问于 2017-06-09 17:24:13
回答 1查看 429关注 0票数 0

给定汽车的以下模式/结构:

代码语言:javascript
复制
car : {
    _id: "123123",
    name: "Ferrari",
    owners: [
        {
            _id : "098098",
            active: true
        },
        {
            _id : "876876",
            active: true
        }
    ]
}

我想将所有owners.active更改为false

使用下面的代码,我能够保存更新后的car对象,但它不会保存到数据库中:

代码语言:javascript
复制
// find car by id
db_car.findById(req.id).then(function(car){
  car.owners.forEach(function(owner){
    owner.active = false;
  });
  car.save();
  console.log('updated car', car); // this is correct, shows updated data
});

//现在检查数据库,数据没有保存在数据库中!

EN

回答 1

Stack Overflow用户

发布于 2017-06-09 17:27:27

Mongoose .findById()返回一个查询。Mongoose查询是而不是Mongoose承诺。相反,您可以使用.exec()执行查询,该查询返回一个promise。例如:

代码语言:javascript
复制
db_car.findById(req.id).exec().then(function(car){ ...

相关文档:http://mongoosejs.com/docs/promises.html#queries-are-not-promises

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44454080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档