Почему MongoCursor не возвращает все результаты MongoCollection? - PullRequest
1 голос
/ 17 декабря 2010

Я использую драйвер 10gen c # MongoDB от mongodb.org и пытаюсь получить все строки из коллекции, в которой более 2 миллионов строк.Вот код:

var mongoServer = dataHelper.GetMongoServer();
var mongoDatabase = mongoServer.GetDatabase("MyDB");
var mongoCollection = mongoDatabase.GetCollection<MyClass>("MyClass");
var mongoCount = mongoCollection.Count();
var mongoCursor = mongoCollection.FindAll();
mongoCursor.SetBatchSize(1000);
var totalCount = 0;

foreach(var myClass in mongoCursor)
{
    ++totalCount;
    //process record
}

Когда оператор foreach завершен, totalCount составляет всего около 91% от mongoCount, который содержит коллекция.Что-то не так с моим кодом?

1 Ответ

1 голос
/ 17 декабря 2010

1 Мб Ваша проблема из-за того, что вы изменили размер пакета? Потому что размер пакета по умолчанию на самом деле 4 МБ. Попробуйте без установки размера партии.

2 Вы пытались установить лимит непосредственно, например, на 3 миллиона?

3 Также вы пытались получить данные по частям, например, на полмиллиона, потому что mb некоторое время ожидания в mongodb или в драйвере?

4 О Cuncurrency в Монго ДБ.

Надеюсь, эта помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...