我能';通过使用node.js和mongoose硬编码id,无法进行任何本地mongodb查询
我有一行非常基本的代码,通过node.js mongoose查询本地mongodb集合,找到一个id为的文档,然后更新它:我能';通过使用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
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的成功结果中复制/粘贴。我也尝试过收集不同的文件。