使用 mgo 在 Go 中查詢 MongoDB 日期範圍
使用 MongoDB 時,根據日期範圍查詢文件是一個常見的操作。本文介紹如何使用 mgo(Go 的 MongoDB 驅動程式)執行此類查詢。
問題:
您有一個名為「my_sales」的 MongoDB 集合,其中包含產品欄位名稱、價格和銷售日期。您需要使用 Go 和 mgo 檢索特定日期範圍內的所有銷售記錄。
解決方案:
mgo 支援使用 time.Time 類型查詢日期。因此,對於給定的具有以下文件結構的範例:
<code class="go">type Sale struct { ProductName string `bson:"product_name"` Price int `bson:"price"` SaleDate time.Time `bson:"sale_date"` }</code>
要查詢指定日期範圍內的銷售額,可以使用以下程式碼:
<code class="go">package main import ( "context" "fmt" "log" "time" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) func main() { // Connect to MongoDB session, err := mgo.Dial("localhost:27017") if err != nil { log.Fatal(err) } defer session.Close() // Get a collection c := session.DB("my_db").C("my_sales") // Define the date range fromDate := time.Date(2014, time.November, 4, 0, 0, 0, 0, time.UTC) toDate := time.Date(2014, time.November, 5, 0, 0, 0, 0, time.UTC) // Query the collection results := []Sale{} err = c.Find( bson.M{ "sale_date": bson.M{ "$gt": fromDate, "$lt": toDate, }, }).All(&results) if err != nil { log.Fatal(err) } // Print the results for _, sale := range results { fmt.Println(sale) } }</code>
透過提供bson . M 地圖具有適當的日期範圍條件,您可以檢索指定日期之間發生的所有銷售。
以上是如何使用 mgo 在 Go 中查詢 MongoDB 日期範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!