Node.js Mongoose model.find()在调用model.save()后返回null(等待调用)

Node.js Mongoose model.find()在调用model.save()后返回null(等待调用),node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,请注意,有一个与此非常相似的问题:但在这个问题中,问这个问题的人犯了一个错误,没有等待承诺。但我确实等了。所以我的问题会有所不同 我有这个密码 const mongoose = require("mongoose") const {connection, Schema} = mongoose mongoose.connect("mongodb://localhost:27017/test").catch(console.error) const Use

请注意,有一个与此非常相似的问题:但在这个问题中,问这个问题的人犯了一个错误,没有等待承诺。但我确实等了。所以我的问题会有所不同

我有这个密码

const mongoose = require("mongoose")
const {connection, Schema} = mongoose

mongoose.connect("mongodb://localhost:27017/test").catch(console.error)

const UserSchema = new Schema({
    firstName: String,
    lastName: String,
    likes: [String]
})

const User = mongoose.model("User", UserSchema)

const addUser = (firstName, lastName) => new User({
    firstName,
    lastName
}).save()

const getUser = (id) => User.findById(id)
const removeUser = (id) => User.remove({id})

connection.once("connected", async () => {
    try {
        const newUser = await addUser("John", "Smith")
        const user = await getUser(newUser.id)

        user.firstName = "Johny"
        user.lastName = "Smithy"
        user.likes = [
            "cooking",
            "watching movies",
            "ice cream"
        ]
        await user.save()
        console.log(JSON.stringify(user, null, 4))
    } catch (error) {
        console.dir(error.message, {colors: true})
    } finally {
        await connection.close()
    }
})
这里连接完成后,我通过调用
addUser()
创建一个新用户,它构造
user
模式,并将其分配给
newUser
常量。在下一行中,我调用
getUser
,它调用
User.findById(newUser.id)
。但这将返回
null
。我已经检查了我的数据库,有一个新条目。但是我不知道为什么
User.findById
返回null。如您所见,我在前一行中使用了
wait
关键字来验证承诺是否得到了解决

由于
null
值,我得到如下错误

Cannot set property 'firstName' of null
那么,如何解决这个问题呢