一括操作の実行
BulkWrite()
メソッドを使用して、コレクションに対して一括書き込み操作を実行できます。
例
Tip
この例の実行方法については、「 の使用例」をお読みください。
この例では、 restaurants
コレクション内のドキュメントのモデルとして次の Restaurant
構造体を使用します。
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
が「Cafe analyzer」であるドキュメントに一致し、それが新しいドキュメントに置き換えられますname
が "Cafe協定世界" であるドキュメントに一致し、 の値を "Zuc内メント" に更新します。
coll := client.Database("sample_restaurants").Collection("restaurants") // Creates write models that specify replace and update operations models := []mongo.WriteModel{ mongo.NewReplaceOneModel().SetFilter(bson.D{{"name", "Cafe Tomato"}}). SetReplacement(Restaurant{Name: "Cafe Zucchini", Cuisine: "French"}), mongo.NewUpdateOneModel().SetFilter(bson.D{{"name", "Cafe Zucchini"}}). SetUpdate(bson.D{{"$set", bson.D{{"name", "Zucchini Land"}}}}), } // Specifies that the bulk write is ordered opts := options.BulkWrite().SetOrdered(true) // Runs a bulk write operation for the specified write operations results, err := coll.BulkWrite(context.TODO(), models, opts)
期待される結果
完全な例を実行すると、 restaurants
コレクションに次のドキュメントが見つかります。
{ "_id": ObjectId("..."), "name": "Zucchini Land", "cuisine": "French" }
ドキュメントの検索方法の例については、「ドキュメントを検索する」を参照してください。
詳細情報
コレクションに対して一括書き込み操作の実行と潜在的なエラーの処理の詳細については、「一括操作 」を参照してください。