使用对象 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中文网其他相关文章!