使用存储在数组中的_id从golang查询mongodb

Dae*_*313 2 go mongodb bson mgo

所以这是我的问题.我有一个存储_idsmongodbs对象的数组.什么是使用mgo和bson包在一个查询中检索它们的正确方法?

所以,如果数组是这样的: ids:=["543d171c5b2c12420dd016","543d171c5b2dd016"]

我们如何进行查询?我试过了,但我知道错了.

query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()
Run Code Online (Sandbox Code Playgroud)

提前致谢

Cer*_*món 10

如果文档使用字符串ID存储,则代码看起来正确.

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}}
Run Code Online (Sandbox Code Playgroud)