使用 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中文网其他相关文章!