首页 > 解决方案 > 在 mongoose 中使用 findByIdAndUpdate 方法时仅获得弃用警告,而不是结果或任何错误

问题描述

require('mongoose')
const User = require('../src/models/users');

User.findByIdAndUpdate('5e2fd89f475fd04adb5f938c',{age:35}).then((user)=>{
    console.log(user);
    return User.countDocuments({age:35})
}).then((result)=>{
    console.log(result);
}).catch((error)=>{
    console.log(error);
});

我有一个用户模型,我正在尝试使用 Mongoose ODM 提供的 findByIdAndUpdate 方法来更新年龄。我在控制台上得到的只是弃用警告,而不是结果或错误。年龄也没有更新。

mongoose.js 文件的内容

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/task-manager-api',{
    useNewUrlParser:true,
    useCreateIndex:true,
    useUnifiedTopology:true,
    useFindAndModify:false
})

标签: node.jsmongodbmongoose

解决方案


那是因为您的传递idobject. 虽然findByIdAndUpdate期望它string。你可以试试这个:

User.findByIdAndUpdate('5e2fd89f475fd04adb5f938c',{age:35}).then((user)=>{
    console.log(user);
    return User.countDocuments({age:35})
}).then((result)=>{
    console.log(result);
}).catch((error)=>{
    console.log(error);
});

希望这对你有用。


推荐阅读