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

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

DDD
DDD原創
2024-10-29 20:06:02262瀏覽

How to Query MongoDB from Go Using an Array of Object IDs?

使用物件ID 陣列從Go 查詢MongoDB

在MongoDB 中,文件可以將其ID 儲存在字串或物件陣列中身分證。當使用 mgo 套件根據儲存在陣列中的物件 ID 檢索多個文件時,確保遵循正確的方法非常重要。

不正確的查詢

提供的查詢:

query := bson.M{"_id": bson.M{"$in": ids}}

對物件 ID 來說不正確,因為 ids 是字串陣列。 MongoDB 需要 $in 運算子的物件 ID。

物件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}}

for 迴圈迭代字串數組,使用bson.ObjectIdHex(string) 將每個字串轉換為物件ID 並將其儲存在oids 切片中。產生的 oids 切片將包含物件 ID。然後使用 $in 運算子的 oids 切片建立查詢。

透過使用正確的物件 ID 查詢,您可以使用 Go 和 mgo 套件從 MongoDB 高效檢索具有匹配 ID 的多個文件。

以上是如何使用物件 ID 陣列從 Go 查詢 MongoDB?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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