首頁 >後端開發 >Golang >如何使用物件 ID 陣列從 Golang 查詢 MongoDB?

如何使用物件 ID 陣列從 Golang 查詢 MongoDB?

DDD
DDD原創
2024-10-31 02:06:29609瀏覽

How to Query MongoDB from Golang using an Array of Object IDs?

使用物件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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn