Bagaimana untuk Menyoal Julat Tarikh MongoDB dalam Go dengan mgo?

Linda Hamilton
Lepaskan: 2024-11-05 15:47:02
asal
499 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan