Substituir um documento
Você pode substituir um documento em uma collection usando o método ReplaceOne()
.
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 { Name string RestaurantId string `bson:"restaurant_id,omitempty"` Cuisine string `bson:"cuisine,omitempty"` Address interface{} `bson:"address,omitempty"` Borough string `bson:"borough,omitempty"` Grades []interface{} `bson:"grades,omitempty"` }
A tag struct omitempty
omite o campo correspondente do documento inserido quando deixado vazio.
Este exemplo executa as seguintes ações na coleção restaurants
:
Corresponde a um documento no qual
name
é "Madame Vo"Substitui o documento correspondente por um novo documento
coll := client.Database("sample_restaurants").Collection("restaurants") filter := bson.D{{"name", "Madame Vo"}} // Creates a new document containing "Name" and "Cuisine" fields replacement := Restaurant{Name: "Monsieur Vo", Cuisine: "Asian Fusion"} // Replaces the first document that matches the filter with a new document result, err := coll.ReplaceOne(context.TODO(), filter, replacement) if err != nil { panic(err) }
Veja um exemplo totalmente executável
Resultado esperado
Após executar o exemplo completo, você pode encontrar o seguinte documento substituído na coleção restaurants
:
{ "_id" : ObjectId("..."), "name" : "Monsieur Vo", "cuisine" : "Asian Fusion" }
Para ver um exemplo de como localizar um documento, consulte o exemplo de uso do Encontrar um documento.
Informações adicionais
Para saber mais sobre como substituir documentos, especificar filtros de queries e lidar com possíveis erros, consulte Modificar documentos.