发布
社区首页 >问答首页 >Mongoose: findOneAndUpdate不返回更新的文档

Mongoose: findOneAndUpdate不返回更新的文档
EN

Stack Overflow用户
提问于 2015-09-28 02:41:35
回答 10查看 354.9K关注 0票数 358

下面是我的代码

代码语言:javascript
代码运行次数:0
复制
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var Cat = mongoose.model('Cat', {
    name: String,
    age: {type: Number, default: 20},
    create: {type: Date, default: Date.now} 
});

Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){
    if(err){
        console.log("Something wrong when updating data!");
    }

    console.log(doc);
});

我已经在我的mongo数据库中有一些记录,我想运行此代码来更新年龄为17的name,然后在代码末尾打印结果。

然而,为什么我仍然从控制台得到相同的结果(而不是修改后的名称),但是当我进入mongo db命令行并输入"db.cats.find();“时。结果是修改了名称。

然后我再次运行这段代码,结果被修改了。

我的问题是:如果数据被修改了,那么为什么我在第一次console.log它的时候仍然得到了原始数据。

EN

Stack Overflow用户

发布于 2019-10-10 00:11:52

我是Mongoose维护者。您需要将new选项设置为true (或等效地,将returnOriginal设置为false)

代码语言:javascript
代码运行次数:0
复制
await User.findOneAndUpdate(filter, update, { new: true });

// Equivalent
await User.findOneAndUpdate(filter, update, { returnOriginal: false });

参见Mongoose findOneAndUpdate() docsthis tutorial on updating documents in Mongoose

票数 14
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32811510

复制
相关文章

相似问题

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