У меня есть mongo db в производстве. Я хочу переместить данные из MongoDB в Postgres для некоторых требований миграции.
Теперь перейдем к части данных. Я планирую написать одну утилиту, которая будет читать данные из MongoDB и писать в Postgres.
Здесь я хочу прочитать все данные из mongo db (содержит 240335 строк) в Postgres.
Я не могу полностью прочитать данные в памяти в приложении. Я хочу прочитать пакет из 10000, затем написать, внести некоторые изменения и записать их в Postgres, а затем снова прочитать следующие 10000, снова повторить это.
Как я могу это сделать?




Я никогда этого не делал, но думаю, можно использовать курсоры для загрузки записей по отдельности. Проблема - решение будет неэффективным.
Пример
var myCursor = db.bios.find( );
var myDocument = myCursor.hasNext() ? myCursor.next() : null;
if (myDocument) {
var myName = myDocument.name;
print (tojson(myName));
//put record to db or add to batch, and upload if 1000 in collection
}
Может, потоки использовать можно? Я не знаю, можно ли использовать потоки в MongoDB.