Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyoal Julat Tarikh MongoDB dalam Go dengan mgo?

Bagaimana untuk Menyoal Julat Tarikh MongoDB dalam Go dengan mgo?

Linda Hamilton
Linda Hamiltonasal
2024-11-05 15:47:02496semak imbas

How to Query MongoDB Date Range in Go with mgo?

Menyoal Julat Tarikh MongoDB dalam Go dengan mgo

Apabila bekerja dengan MongoDB, menanya dokumen berdasarkan julat tarikh ialah operasi biasa. Artikel ini membincangkan cara melakukan pertanyaan sedemikian menggunakan mgo, pemacu MongoDB untuk Go.

Masalah:

Anda mempunyai koleksi MongoDB bernama "my_sales" dengan medan untuk produk nama, harga dan tarikh jualan. Anda perlu mendapatkan semula semua rekod jualan dalam julat tarikh tertentu menggunakan Go dan mgo.

Penyelesaian:

mgo menyokong tarikh pertanyaan menggunakan masa.Jenis masa. Oleh itu, untuk contoh yang diberikan dengan struktur dokumen berikut:

<code class="go">type Sale struct {
    ProductName string    `bson:"product_name"`
    Price       int       `bson:"price"`
    SaleDate    time.Time `bson:"sale_date"`
}</code>

Untuk menanyakan jualan dalam julat tarikh yang ditentukan, anda boleh menggunakan kod berikut:

<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>

Dengan menyediakan bson Peta .M dengan kriteria julat tarikh yang sesuai, anda boleh mendapatkan semula semua jualan yang berlaku antara tarikh yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Julat Tarikh MongoDB dalam Go dengan mgo?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn