2014-10-17 140 views
1

所以这里是我的问题。我有一个数组,其中存储了Mongodbs对象的_ids。什么是使用mgo和bson软件包在一个查询中检索它们的正确方法?使用存储在数组中的_id从golang查询mongodb

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

我们如何使查询?我尝试过,但我知道它错了。

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

在此先感谢

回答

7

如果文档存储与字符串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}}