首页 > 后端开发 > Golang > 正文

如何使用对象 ID 数组从 Golang 查询 MongoDB?

DDD
发布: 2024-10-31 02:06:29
原创
542 人浏览过

How to Query MongoDB from Golang using an Array of Object IDs?

使用对象 ID 数组从 Golang 查询 MongoDB

在 MongoDB 中,您可以存储文档数组,每个文档都有自己唯一的 _id 。这允许您将多个文档与父文档关联。当使用 Golang 的 mgo 和 bson 包查询这些文档时,将 _id 数组转换为适当的类型非常重要。

解决方案

如果数组中的 _id 值只是十六进制字符串,提供的代码是正确的:

<code class="go">query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()</code>
登录后复制

但是,如果 _id 值是对象标识符(ObjectId),则需要将它们转换为正确的类型:

<code class="go">oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}</code>
登录后复制

此转换是必要的,因为 $in 运算符需要一个 ObjectId 值数组,而不是十六进制字符串。通过将十六进制字符串转换为ObjectId类型,您可以正确查询与提供的_id值关联的文档。

以上是如何使用对象 ID 数组从 Golang 查询 MongoDB?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!