Я пытаюсь запросить большой набор результатов от MongoDB над Python. Я делаю это через JavaScript, потому что хочу получить что-то вроде внуков в древовидной структуре. Мой код выглядит следующим образом:MongoDB JavaScript Достаточно большой набор результатов
col = db.getCollection(...)
var res = new Array();
col.find({ "type" : ["example"] }).forEach(
function(entry)
{
v1 = col.find({"_id" : entry["..."]})
... (walk through the structure) ...
vn = ...
res.push([v1["_id"], vn["data"]]);
}
);
return res;
Теперь у меня проблема, что результирующий массив становится очень (слишком) большим и память получает превышена. Есть ли способ, чтобы дать результаты, а не подталкивать их в массив?
Используйте 'next' вместо' forEach'? Сделайте один результат за раз. – Halcyon
Можете ли вы прояснить, что вы хотели бы сделать с вашей доходностью? Если целью является выполнение операции партиями, вы можете сохранить счетчик записей, которые вы выбрали для массива. Когда вы достигнете размера партии, вы затем будете работать с текущим набором записей, а затем очистите массив после. –
Благодарим вас за помощь. Я хотел бы сделать сложный запрос на стороне сервера и получить все результаты для работы с python-side, впоследствии. Если я получу вас правильно, можно было бы работать с небольшими массивами на стороне сервера или дать одному из них обратно в результате, чтобы потребовалось несколько запросов. Я хотел бы обработать все результаты на стороне клиента и, таким образом, вернуть результаты, пакет для партии. – user2124362