Maison > développement back-end > Golang > Comment interroger la plage de dates MongoDB dans Go avec mgo ?

Comment interroger la plage de dates MongoDB dans Go avec mgo ?

Linda Hamilton
Libérer: 2024-11-05 15:47:02
original
530 Les gens l'ont consulté

How to Query MongoDB Date Range in Go with mgo?

Interrogation d'une plage de dates MongoDB dans Go avec mgo

Lorsque vous travaillez avec MongoDB, l'interrogation de documents en fonction de plages de dates est une opération courante. Cet article explique comment effectuer de telles requêtes à l'aide de mgo, un pilote MongoDB pour Go.

Problème :

Vous disposez d'une collection MongoDB nommée "my_sales" avec des champs pour le produit. nom, prix et date de vente. Vous devez récupérer tous les enregistrements de ventes dans une plage de dates spécifique à l'aide de Go et mgo.

Solution :

mgo prend en charge l'interrogation de dates à l'aide du type time.Time. Par conséquent, pour l'exemple donné avec la structure de document suivante :

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

Pour interroger les ventes dans la plage de dates spécifiée, vous pouvez utiliser le code suivant :

<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>
Copier après la connexion

En fournissant le bson .M avec les critères de plage de dates appropriés, vous pouvez récupérer toutes les ventes réalisées entre les dates spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal