透過物件ID 陣列檢索MongoDB 文件
在MongoDB 中,可以儲存物件ID 陣列(也稱為_ids)在一個文檔內。若要有效檢索與這些物件 ID 對應的所有文檔,請使用 $in 運算子。
問題:
您有一個十六進位編碼的_ids 陣列:
ids := ["543d171c5b2c12420dd016", "543d171c5b2dd016"]
如何使用mgo 和bson 來擷取對應的文件?
答案:
您的初始方法使用:
query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()
是不正確的,因為_ids 儲存為物件ID,而不是字串。要透過物件ID 檢索文檔,您需要將十六進位編碼的字串轉換為bson.ObjectId 物件:
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}} c.Find(query).All()
此程式碼:
以上是如何使用 mgo 和 bson 透過物件 ID 陣列檢索 MongoDB 文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!