我能';通过使用node.js和mongoose硬编码id,无法进行任何本地mongodb查询

我能';通过使用node.js和mongoose硬编码id,无法进行任何本地mongodb查询,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一行非常基本的代码,通过node.js mongoose查询本地mongodb集合,找到一个id为的文档,然后更新它: mongoose.connect(...).try(...).catch(..) const Author = mongoose.model("Author", new mongoose.Schema(...)) async function updateAuthor(authorId){ try { const author = awai

我有一行非常基本的代码,通过node.js mongoose查询本地mongodb集合,找到一个id为的文档,然后更新它:

mongoose.connect(...).try(...).catch(..)
const Author = mongoose.model("Author", new mongoose.Schema(...))

async function updateAuthor(authorId){
  try {
    const author = await Author.findById(authorId);
    author.name = "new name";
    await author.save()
  } catch (err) { console.log(err)}
}

getAuthor("[an existing author id in my local mongodb]")
当我连接到遥远的Atlas mongodb并在那里进行查询时,这一点非常有效。 当我在本地mongodb上尝试相同的代码时,如果我通过postman的url调用给getAuthor()一个id,并使用json:getAuthor(req.body.id),我也可以让它工作

但当我试图硬编码从本地mongodb复制的id(如getAuthor(“555FFF555FFFF55555”))时,我无法使其工作,我得到了错误“TypeError:无法读取null的属性'author',因为author为null,因为findById()没有返回任何内容

我尝试了谷歌让我做的几件不同的事情,但没有一件奏效:

findById(new mongoose.Types.ObjectId("555fff5555ffff55555"))
find({ _id: "555fff5555ffff55555"})
find({ "_id": "555fff5555ffff55555"})
通过antoher属性(例如,通过名称)进行的任何其他查询都可以正常工作

我学习了一门Mosh课程,他还使用findById(),并将id硬编码为一个简单的字符串,没有任何问题。我试图卸载mongoose并安装与他的版本相同的版本,但仍然遇到同样的问题。findByID、findByID和Update或findByID和Delete都无法工作。有人知道我为什么不能在本地mongodb上按Id查询吗

我的本地版本是:

mongod-版本:v4.4.1//MongoDB


npm列表猫鼬:`--mongoose@5.10.9

唯一可能的问题是,您正在查询的id没有此类文档。

我确认数据库中100%存在我正在查询的id,我使用了直接来自三个不同mongodb源的复制粘贴来访问本地数据库,每次的结果都是一样的:我尝试从MongoDB Compass、MongoDB控制台和postman将保存的文档返回为json的成功结果中复制/粘贴。我也尝试过收集不同的文件。