为了账号安全,请及时绑定邮箱和手机立即绑定

Mongoose:findOneAndUpdate不返回更新的文档

Mongoose:findOneAndUpdate不返回更新的文档

神不在的星期二 2019-07-26 14:55:05
Mongoose:findOneAndUpdate不返回更新的文档以下是我的代码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的名称,然后在代码末尾打印结果。但是,为什么我仍然从控制台获得相同的结果(不是修改后的名称),但是当我转到mongo db命令行并输入“ db.cats.find();”时。结果来自修改后的名称。然后我回去再次运行此代码,结果被修改。我的问题是:如果数据被修改,那么为什么我在第一次使用console.log时仍然获得了原始数据。
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

对于使用Node.js驱动程序而不是Mongoose的任何人,您将需要使用{returnOriginal:false}而不是{new:true}


查看完整回答
反对 回复 2019-07-26
?
HUX布斯

TA贡献1876条经验 获得超6个赞

默认情况下,findOneAndUpdate返回原始文档。如果您希望它返回修改后的文档{ new: true },则将选项对象传递给函数:

Cat.findOneAndUpdate({ age: 17 }, { $set: { name: "Naomi" } }, { new: true }, function(err, doc) {});


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 2552 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信