我試圖通過Python從MongoDB查詢一大組結果。我通過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 2013-03-01 16:54:35
你能澄清你想用你的收益完成什麼嗎?如果目標是批量執行操作,則可以保留已推送到數組的記錄的計數器。當您達到批量大小時,您將在當前記錄集上進行操作,然後清除該數組。 – 2013-03-01 18:04:33
謝謝你的幫助。我想在服務器端做一個複雜的查詢,然後在python端獲得所有結果。如果我找到了正確的答案,那麼只能在服務器端使用小數組,或者讓其中一個返回,以便需要多個查詢。我想在客戶端處理所有結果,並將結果返回給批處理。 – user2124362 2013-03-04 07:54:51