mgo를 사용하여 Go에서 MongoDB 날짜 범위 쿼리
MongoDB로 작업할 때 날짜 범위를 기반으로 문서를 쿼리하는 것은 일반적인 작업입니다. 이 문서에서는 Go용 MongoDB 드라이버인 mgo를 사용하여 이러한 쿼리를 수행하는 방법을 설명합니다.
문제:
제품 필드가 포함된 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!