пакетная вставка c # mongodb

1

Я хочу импортировать файл csv в MongoDB. Файл csv имеет 3,00,000 записей и 10 полей. Я не могу найти хороший учебник для метода InsertBatch, описанного в документации MongoDB. Вставка записей один за другим с использованием метода insert() занимает более 15 минут.

Теги:

2 ответа

4
Лучший ответ

Это помогает вам?

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());
  • 0
    Это нормально, но как создать BsonDocument динамически, т. Е. Читать файл CSV?
  • 0
    Существует много библиотек .NET для чтения CSV-файлов, таких как этот .
Показать ещё 3 комментария
1

Спасибо 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 секунд, чтобы вставить столько данных. Еще раз спасибо за вашу помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню