Puedes encontrar varios documentos en una colección utilizando el método Find().
Ejemplo
Tip
Lee los Ejemplos de uso para aprender cómo ejecutar este ejemplo.
Este ejemplo utiliza la siguiente Restaurant estructura como modelo para los documentos de la colección restaurants:
type Restaurant struct { ID primitive.ObjectID `bson:"_id"` Name string RestaurantId string `bson:"restaurant_id"` Cuisine string Address interface{} Borough string Grades interface{} }
El siguiente ejemplo coincide con los documentos de la colección restaurants en los que el cuisine es "Italian", devuelve un cursor que hace referencia a los documentos coincidentes y luego desempaqueta los documentos en un segmento:
coll := client.Database("sample_restaurants").Collection("restaurants") // Creates a query filter to match documents in which the "cuisine" // is "Italian" filter := bson.D{{"cuisine", "Italian"}} // Retrieves documents that match the query filter cursor, err := coll.Find(context.TODO(), filter) if err != nil { panic(err) } // Unpacks the cursor into a slice var results []Restaurant if err = cursor.All(context.TODO(), &results); err != nil { panic(err) }
Resultado esperado
Ejecutar el ejemplo completo imprime los siguientes documentos, que se almacenan en la variable results como structs Restaurant:
// results truncated ... { ... , "Name" : "Epistrophy Cafe", "RestaurantId": "41117553", "Cuisine" : "Italian", ... }, { ... , "Name" : "Remi", "RestaurantId": "41118090", "Cuisine" : "Italian", ... }, { ... , "Name" : "Sant Ambroeus", "RestaurantId": "41120682", "Cuisine" : "Italian", ... }, ...
Información Adicional
Para obtener más información sobre cómo especificar filtros de query y manejar posibles errores, consulta Recuperar datos.
Para obtener más información sobre los operadores del query, consulte la documentación de referencia de operadores del query de MongoDB.