Heim > Backend-Entwicklung > Golang > Wie frage ich den MongoDB-Datumsbereich in Go mit mgo ab?

Wie frage ich den MongoDB-Datumsbereich in Go mit mgo ab?

Linda Hamilton
Freigeben: 2024-11-05 15:47:02
Original
621 Leute haben es durchsucht

How to Query MongoDB Date Range in Go with mgo?

Abfragen des MongoDB-Datumsbereichs in Go mit mgo

Bei der Arbeit mit MongoDB ist das Abfragen von Dokumenten basierend auf Datumsbereichen ein häufiger Vorgang. In diesem Artikel wird beschrieben, wie solche Abfragen mit mgo, einem MongoDB-Treiber für Go, durchgeführt werden.

Problem:

Sie haben eine MongoDB-Sammlung mit dem Namen „my_sales“ mit Feldern für das Produkt Name, Preis und Verkaufsdatum. Sie müssen alle Verkaufsdatensätze innerhalb eines bestimmten Datumsbereichs mit Go und mgo abrufen.

Lösung:

mgo unterstützt die Abfrage von Daten mithilfe des Typs time.Time. Daher für das gegebene Beispiel mit der folgenden Dokumentstruktur:

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

Um Verkäufe innerhalb des angegebenen Datumsbereichs abzufragen, können Sie den folgenden Code verwenden:

<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>
Nach dem Login kopieren

Durch Angabe des bson .M-Karte mit den entsprechenden Datumsbereichskriterien können Sie alle Verkäufe abrufen, die zwischen den angegebenen Daten stattgefunden haben.

Das obige ist der detaillierte Inhalt vonWie frage ich den MongoDB-Datumsbereich in Go mit mgo ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage