Golang MongoDB まとめ書きのデータはどう実装していますか?
MongoDBのBulkWriteメソッドは、Goでデータをまとめて挿入するために使用できます。
まずMongoDB の Go ドライバ・パッケージをインストールする必要がありますが、それには次のコマンドを使用できます。
go get go.mongodb.org/mongo-driver/mongo
然后,你可以按照以下步骤来进行批量写入数据的实现:
- MongoDBクライアント接続を作成する:
client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
log.Fatal(err)
}
defer client.Disconnect(ctx)
- データベースとコレクションを選択する:
database := client.Database("mydb")
collection := database.Collection("mycollection")
- データを書き込む WriteModel のスライスを作成します。
var models []mongo.WriteModel
for i := 0; i < 10; i++ {
model := mongo.NewInsertOneModel()
model.SetDocument(bson.D{
{"name", fmt.Sprintf("Name %d", i)},
{"age", i},
})
models = append(models, model)
}
- java.BulkWrite を使って、一括書き込み操作を実行する
result, err := collection.BulkWrite(ctx, models)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted %d documents\n", result.InsertedCount)
上記のコードは、10のドキュメントを指定されたコレクションに一括書き込みします。
補足ですが、コード内の「context」は Go の文脈のことですので、必要に応じて独自に定義してご活用ください。さらに更新や削除といった追加のデータ検証や操作を適宜加えることもできます。
何かお役に立てれば幸いです!