一尘不染

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

go

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

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

我们如何进行查询?我尝试过,但是我知道它是错误的。

query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()

提前致谢


阅读 283

收藏
2020-07-02

共1个答案

一尘不染

如果文档使用字符串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}}
2020-07-02