首页 > 后端开发 > Golang > 如何使用对象 ID 数组从 Go 查询 MongoDB?

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

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

How to Query MongoDB from Go Using an Array of Object IDs?

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

在 MongoDB 中,文档可以将其 ID 存储在字符串或对象数组中身份证。当使用 mgo 包根据存储在数组中的对象 ID 检索多个文档时,确保遵循正确的方法非常重要。

不正确的查询

提供的查询:

query := bson.M{"_id": bson.M{"$in": ids}}
登录后复制

对于对象 ID 来说不正确,因为 ids 是字符串数组。 MongoDB 需要 $in 运算符的对象 ID。

对象 ID 的正确查询

要查询存储在数组中的对象 ID,请先将字符串转换为对象 ID构造查询:

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

for 循环迭代字符串数组,使用 bson.ObjectIdHex(string) 将每个字符串转换为对象 ID 并将其存储在 oids 切片中。生成的 oids 切片将包含对象 ID。然后使用 $in 运算符的 oids 切片构建查询。

通过使用正确的对象 ID 查询,您可以使用 Go 和 mgo 包从 MongoDB 高效检索具有匹配 ID 的多个文档。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板