2016-10-07 114 views
0

我有兩個集合,兩個集合都有~100萬個文檔。使用其他集合中的值的mongodb過濾文檔

我想,以紀念COL1文件,如果他們在COL2存在:

db.col1.find().forEach(function(c1){ 
    var c2=db.col2.find(a:c1.a); 
    if (c2!=null) { 
     c1.mark=true; 
     db.col1.save(c1); 
    } 
}); 

看來,上面的腳本不會通過所有的文件運行,所以我得到的只有少數(約50)更新。我在這裏錯過了什麼?

回答

1

我的猜測是,這是因爲saveis asynchronous,並且當你開始執行的操作速度過快,那麼它開始表現奇怪。我試圖改變處理save回調的邏輯,以便控制同時進行多少次保存。

+0

謝謝。你能給我一個樣本嗎? –

相關問題