首页 >后端开发 >Golang >为什么我的 mgo FindById 查询在数据存在时返回零?

为什么我的 mgo FindById 查询在数据存在时返回零?

Patricia Arquette
Patricia Arquette原创
2024-12-09 02:43:13645浏览

Why Does My mgo FindById Query Return Zero When Data Exists?

使用 mgo 在 MongoDB 中按 ID 查找

使用 mgo 在 MongoDB 中按 ID 查找数据是一个常见操作。但是,当尝试检索已知存在的数据但查询返回空结果时,可能会出现问题。本文探讨了此问题的潜在原因,并根据提供的问题和答案提供了解决方案。

在问题中,用户尝试使用 FindId 方法检索数据,并将 ID 作为十六进制字符串传递。但是,返回值始终为 0。出现这种情况的原因有两个:

  1. FindId 的错误使用:FindId 应该与原始 ID 值一起使用,而不是十六进制表示形式。将 bson.ObjectIdHex("58593d1d6aace357b32bb3a1") 替换为 bson.ObjectId("58593d1d6aace357b32bb3a1")。
  2. 字段名称不匹配:MongoDB 文档中的 ID 字段可能与预期名称不同中的 IdCookie 字段结构。使用struct标签来指定正确的字段映射,例如bson:"myid"。

为了优化数据库连接,建议连接MongoDB服务器一次并重复使用会话,而不是重复使用建立连接。

通过解决这些潜在问题,用户应该能够使用 mgo 成功通过 ID 查找数据。

以上是为什么我的 mgo FindById 查询在数据存在时返回零?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn