首页 > 解决方案 > Mongoose 查询返回错误,但错误是我要查找的结果

问题描述

在猫鼬中,当我调用以下代码时:

db.Person.find({}).then((err, author) => {
   if (err) {
     console.log("err",err);
   } else {
    console.log('author', author);
    }
  });

它返回一个错误,而不是我正在寻找的文档,并且该错误似乎是我正在寻找的文档。看这里:在此处输入图像描述

为什么它会返回错误而不是实际对象?我试图从返回的文档中访问属性。该对象存在于我的数据库中: 在此处输入图像描述

标签: javascriptnode.jsmongodbexpressmongoose

解决方案


根据文档:https://mongoosejs.com/docs/promises.html 您应该使用 query.exec() 来获得完整的承诺:

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();

promise.then(function (doc) {
  // use doc
});

当你像承诺一样使用它时,

.then((doc)=>console.log(doc))

doc 是实际的文档,最终会出现错误

.catch(err=>console.log(err))

推荐阅读