44

阅读 Mongoose 文档时我有点困惑。

如果我在 mongoose 中运行不匹配集合中任何文档的查询,回调函数中的err和的值是什么?我只是不知道 Mongoose 认为什么是“错误”。作为一名数学家,返回空集(即数组为空)似乎完全有效,不应该是“错误”——查询执行得很好,只是没有匹配的文档。另一方面,有些人可能认为这是一个“错误”。从猫鼬文档,要么:resultscallback(err, results)results

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

3 回答 3

53

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

于 2013-08-13T16:44:27.953 回答
10

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

  • find:errnull,result[]

  • findOnefindById:errnull,resultnull

但是,如果某些条件无效(例如,字段是string但您传递了一个object,或者您传递了一个无效的_id

对于所有三个:err{..}resultundefined

于 2017-01-01T13:23:30.033 回答
0

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

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

于 2021-03-07T11:09:10.057 回答