通过对象 ID 数组检索 MongoDB 文档
在 MongoDB 中,可以存储对象 ID 数组(也称为 _ids)在一个文档内。要有效检索与这些对象 ID 对应的所有文档,请使用 $in 运算符。
问题:
您有一个十六进制编码的 _ids 数组:
ids := ["543d171c5b2c12420dd016", "543d171c5b2dd016"]
如何使用 mgo 和 bson 检索相应的文档?
答案:
您的初始方法使用:
query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()
是不正确的,因为 _ids 存储为对象 ID,而不是字符串。要通过对象 ID 检索文档,您需要将十六进制编码的字符串转换为 bson.ObjectId 对象:
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}} c.Find(query).All()
此代码:
以上是如何使用 mgo 和 bson 通过对象 ID 数组检索 MongoDB 文档?的详细内容。更多信息请关注PHP中文网其他相关文章!