Я хочу импортировать файл csv в MongoDB. Файл csv имеет 3,00,000 записей и 10 полей. Я не могу найти хороший учебник для метода InsertBatch, описанного в документации MongoDB. Вставка записей один за другим с использованием метода insert() занимает более 15 минут.
Это помогает вам?
MongoCollection<BsonDocument> books;
List<BsonDocument> batch = new List<BsonDocument>();
using (CsvReader reader = new CsvReader("users.csv"))
{
batch.add(
new BsonDocument {
{ "field1", reader["field1"] },
{ "field2", reader["field2"] }
}),
};
books.InsertBatch(batch.ToArray());
Спасибо elpaulo за вашу помощь. Я изменил код и попробовал тестовый код bulkinsert. Вот полный код
var mongo = new MongoClient("mongodb://10.44.4.59");
MongoServer server = mongo.GetServer();
MongoDatabase test = server.GetDatabase("server_info");
var category = test.GetCollection("test_collection");
List<BsonDocument> batch = new List<BsonDocument>();
for (int i = 0; i < 300000; i++)
{
batch.Add(
new BsonDocument {
{ "field1", 1 },
{ "field2", 2 },
{ "field3", 3 },
{ "field4", 4 }
});
}
category.InsertBatch(batch);
Это займет около 30 секунд, чтобы вставить столько данных. Еще раз спасибо за вашу помощь.