>백엔드 개발 >Golang >mgo를 사용하여 Go에서 MongoDB 날짜 범위를 쿼리하는 방법은 무엇입니까?

mgo를 사용하여 Go에서 MongoDB 날짜 범위를 쿼리하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-05 15:47:02506검색

How to Query MongoDB Date Range in Go with mgo?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.