Localizar vários documentos
Você pode encontrar vários documentos em uma coleção usando o método Find()
.
Exemplo
Dica
Leia os Exemplos de uso para saber como executar este exemplo.
Este exemplo utiliza a seguinte estrutura Restaurant
como um modelo para documentos na collection restaurants
:
type Restaurant struct { ID primitive.ObjectID `bson:"_id"` Name string RestaurantId string `bson:"restaurant_id"` Cuisine string Address interface{} Borough string Grades interface{} }
O exemplo a seguir corresponde a documentos na coleção restaurants
na qual o cuisine
é "Italian"
, retorna um cursor que faz referência aos documentos correspondentes e, em seguida, descompacta os documentos em uma fatia:
coll := client.Database("sample_restaurants").Collection("restaurants") 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) }
Visualizar um exemplo completamente executável
Resultado esperado
A execução do exemplo completo representa os seguintes documentos, que são armazenados na variável results
como estruturas Restaurant
:
// results truncated ... { ... , "Name" : "Epistrophy Cafe", "RestaurantId": "41117553", "Cuisine" : "Italian", ... }, { ... , "Name" : "Remi", "RestaurantId": "41118090", "Cuisine" : "Italian", ... }, { ... , "Name" : "Sant Ambroeus", "RestaurantId": "41120682", "Cuisine" : "Italian", ... }, ...
Informações adicionais
Para saber mais sobre como especificar filtros de queries e lidar com possíveis erros, consulte Retrieve Data (Recuperar dados).
Para saber mais sobre operadores de query, consulte a documentação de referência do operador de query do MongoDB.