mongodb - GoLang mgo - mgo.ErrNotFound for find(...).All(...)

标签 mongodb go error-handling mgo

我有一个 GoLang 代码:

c.Find(selectQuery).All(&results)
if err == mgo.ErrNotFound {
// error handling
}

selectQuery 值在这里并不重要。

我从未收到错误 ErrNotFound。即使查询与任何结果都不匹配,我也不会得到 ErrNotFound。我得到具有空属性的变量 result。我应该如何更改代码来处理 ErrNotFound 案例?

最佳答案

Query.All()从不返回 mgo.ErrNotFound,所以检查它是没有用的。如果没有结果,results 的长度将为 0,这样你就可以检测到 if 没有错误:

err := c.Find(selectQuery).All(&results)
if err != nil { {
    // error handling
    return
}
// If you must detect "not found" case:
if len(results) == 0 {
    // No results
}

mgo.ErrNotFound 被其他方法使用/返回,通常是那些应该对单个文档进行操作的方法,例如 Query.One()Query.Apply() .

关于mongodb - GoLang mgo - mgo.ErrNotFound for find(...).All(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44302790/

相关文章:

html - 去html模板表

shell - 已安装软件包时避免 yum 错误

php - 跳过循环错误? (PHP)

javascript - 将 Mongo ID 转换为字符串进行比较

mongodb - 如何在MongoDB中使用与聚合不同的方法

node.js - 计算 mongodb 中不同值的数量,然后计算总和

c++ - 错误处理程序如何在内部工作?

javascript - Node.js 和 MongoDB (mongoose) 中的登录表单

go - golang中的x%y是什么操作?

amazon-web-services - 使用非默认 VPC (aws-sdk-go) 时无法调用 ec2.AuthorizeSecurityGroupIngressInput