You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mongoose的Model.find()抛出UnhandledPromiseRejectionWarning错误如何解决

错误根因

你调用MyModel.find()时缺少第一个必填的查询过滤参数,直接将回调函数作为唯一参数传入,不符合Mongoose 6.x及以上版本的参数规范:

  • Model.find()的标准参数规则为 Model.find(filter, [options], [callback]),第一个参数filter为查询条件对象,即使需要查询集合内所有数据,也必须显式传入空对象{}作为第一个参数。
  • findById、findOne等方法的首参数允许直接传入对应类型的查询值,你调用这类方法时传参符合规范,因此可以正常运行。

修复方案

回调写法

// 首参数传入空对象代表无过滤条件,查询全部数据
MyModel.find({}, (err, data) => err ? console.log(err) : console.log(data))

Promise写法

MyModel.find({})
  .then(data => console.log(data))
  .catch(err => console.log(err))

async/await写法

const fetchAllData = async () => {
  try {
    const data = await MyModel.find({})
    console.log(data)
  } catch (err) {
    console.log(err)
  }
}
fetchAllData()

内容的提问来源于stack exchange,提问作者Yasha20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:27:03