Querying mongodb from golang using the _id stored in an array

限于喜欢 提交于 2019-12-18 09:13:27

问题


So here is my question. I have an array which are stored the _ids of mongodbs objects. Whats the right way to retrieve them all in one query using the mgo and bson package?

So if the array is like that: ids:=["543d171c5b2c12420dd016","543d171c5b2dd016"]

How we make the query ? I tried that but I know its wrong.

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

Thanks in advance


回答1:


If the documents are stored with string ids, then the code looks correct.

The ids look like hex encoded object ids. If the object identifiers are object ids, then you need to the convert the hex strings to object ids:

oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}


来源:https://stackoverflow.com/questions/26428281/querying-mongodb-from-golang-using-the-id-stored-in-an-array

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!