Maison > Article > développement back-end > Comment interroger la plage de dates MongoDB dans Go avec 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>
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>
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!