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);});我已經(jīng)在我的mongo數(shù)據(jù)庫中有一些記錄,我想運(yùn)行此代碼來更新年齡為17的名稱,然后在代碼末尾打印結(jié)果。但是,為什么我仍然從控制臺獲得相同的結(jié)果(不是修改后的名稱),但是當(dāng)我轉(zhuǎn)到mongo db命令行并輸入“ db.cats.find();”時。結(jié)果來自修改后的名稱。然后我回去再次運(yùn)行此代碼,結(jié)果被修改。我的問題是:如果數(shù)據(jù)被修改,那么為什么我在第一次使用console.log時仍然獲得了原始數(shù)據(jù)。
3 回答

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊
對于使用Node.js驅(qū)動程序而不是Mongoose的任何人,您將需要使用{returnOriginal:false}
而不是{new:true}
。

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個贊
默認(rèn)情況下,findOneAndUpdate返回原始文檔。如果您希望它返回修改后的文檔{ new: true }
,則將選項(xiàng)對象傳遞給函數(shù):
Cat.findOneAndUpdate({ age: 17 }, { $set: { name: "Naomi" } }, { new: true }, function(err, doc) {});
- 3 回答
- 0 關(guān)注
- 2627 瀏覽
添加回答
舉報(bào)
0/150
提交
取消