package main import ( "context" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) const uri = "mongodb://localhost" func main() { ctx := context.Background() opts := options.Client().ApplyURI(uri) if err := opts.Validate(); err != nil { log.Fatal(err) } client, err := mongo.NewClient(opts) if err != nil { log.Fatal(err) } if err := client.Connect(ctx); err != nil { log.Fatal(err) } defer client.Disconnect(ctx) coll := client.Database("bulkwrite").Collection("bulkwrite") models := []mongo.WriteModel{ &mongo.DeleteOneModel{Filter: bson.D{{"_id", "id0"}}}, &mongo.InsertOneModel{Document: bson.D{{"_id", "id1"}}}, &mongo.DeleteOneModel{Filter: bson.D{{"_id", "id2"}}}, &mongo.InsertOneModel{Document: bson.D{{"_id", "id3"}}}, &mongo.DeleteOneModel{Filter: bson.D{{"_id", "id4"}}}, } _, err = coll.BulkWrite(ctx, models, options.BulkWrite().SetOrdered(false)) if err != nil { for _, err := range err.(mongo.BulkWriteException).WriteErrors { fmt.Println(err.Code, err.Index) } } }