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

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