使用物件ID 陣列從Golang 查詢MongoDB
在MongoDB 中,您可以儲存文件數組,每個文件都有自己唯一的_id 。這允許您將多個文檔與父文檔關聯。當使用 Golang 的 mgo 和 bson 套件查詢這些文件時,將 _id 陣列轉換為適當的類型非常重要。
解
如果數組中的_id 值只是十六進位字串,提供的程式碼是正確的:
<code class="go">query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()</code>
但是,如果_id 值是物件識別碼(ObjectId),則需要將它們轉換為正確的類型:
<code class="go">oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}}</code>
此轉換是必要的,因為$in 運算子需要一個ObjectId 值數組,而不是十六進位字串。透過將十六進位字串轉換為ObjectId類型,您可以正確查詢與提供的_id值關聯的文件。
以上是如何使用物件 ID 陣列從 Golang 查詢 MongoDB?的詳細內容。更多資訊請關注PHP中文網其他相關文章!