替换文档
您可以使用 ReplaceOne()
方法替换collection中的文档。
例子
提示
参阅使用示例,了解如何运行此示例。
此示例使用以下 Restaurant
结构作为 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"` }
omitempty
结构体标签留空时会省略插入文档中的相应字段。
以下示例对 restaurants
集合执行以下操作:
匹配文档中
name
为“Madame Vo”的文档用新文档替换匹配的文档
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) }
查看 完全可运行的示例
预期结果
运行完整示例后,您可在 restaurants
集合中找到以下替换的文档:
{ "_id" : ObjectId("..."), "name" : "Monsieur Vo", "cuisine" : "Asian Fusion" }
有关如何查找文档的示例,请参阅查找文档用法示例。
更多信息
要了解有关替换文档、指定查询筛选器和处理潜在错误的更多信息,请参阅修改文档。