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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-05 15:47:02496Durchsuche

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>

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>

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!

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