2014-10-17 52 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}}