mongodb Mongoose查询没有找到匹配项,返回什么?

92dk7w1h  于 12个月前  发布在  Go
关注(0)|答案(3)|浏览(158)

我在阅读Mongoose文档时有点困惑。
如果我在mongoose中运行一个查询,它在集合中没有匹配任何文档,那么回调函数callback(err, results)中的errresults的值是什么?我只是不知道Mongoose认为什么是“错误”。作为一个数学家,返回空集(即results数组为空)似乎完全有效,不应该是一个“错误”-查询执行良好,只是没有匹配的文档。另一方面,有些人可能会认为这是一个“错误”。从mongoose文档,或者:

  1. err = null,results = []
  2. err =空,results =空
  3. err =错误文档,results = null
mfuanj7w

mfuanj7w1#

这取决于查询。如果它是find,那么results == []。如果它是findOne,那么results == null。如果其他一切正常,则没有错误。

eh57zj3b

eh57zj3b2#

如果条件有效但未找到匹配项:

  • finderrnullresult[]
  • findOnefindByIderrnullresultnull

但是,如果某些条件无效(例如,字段为string,但您传递了object,或者您传递了无效的_id
err{..}resultundefined

zvms9eto

zvms9eto3#

如果使用.find()
方便的方法是

models.<your collection name>.find({ _id: `your input` }).then(data => {
    if (data.length == 0) return // throw your error to the console;
});

字符串

相关问题