Когда я пытался вставить список записей адресных строк, скажем, около 9 000 000 в коллекцию mongodb в одном методе insertManyAsync, я получил сообщение об ошибке Нулевое значение не может быть записано на корневой уровень документа BSON.
Проверили, есть ли в списке пустые записи, но не смогли найти.Эта ошибка, кажется, недоступна, когда я пытался найти ее.
Parallel.For(0, addresslines.Count, async index =>
{
tempAddresses.Add(new TempAddress() { AddressLine1 = addresslines["AddressLine1"], Village = addresslines["Village"] });
});
/* Foreach without parallel works.
foreach (var item in pincodestrings)
{
tempAddresses.Add(new TempAddress() { AddressLine1 = DateTime.Now.ToLongDateString() }); //, AddressLine2 = "sample2", Dist_City = "sample", Pincode = 1, State = "yy", Town_Taluk = "aa", Village = "vv" });
}*/
if (tempAddresses.Count > 0)
{
await _context.QCSubmission.InsertManyAsync(tempAddresses.AsEnumerable(), null);
}
Пробовал с несколькими записями сказать 100 записей, что работает нормально.В чем заключалась проблема вставки массовых записей в MongoDB.Нужно ли проверять и исправлять в MongoDB?
ОБНОВЛЕНИЕ: Согласно комментариям, заменили Parallel.Foreach на for-each, который работает, но для обработки огромных данных использование Parallel обязательно ускоряется.