2013-02-22 84 views
0

是什麼區別:collection.find與回調和不回調之間有什麼區別?

var cursor = collection.find(); 
//do something 

collection.find(null, function(err, cursor) { 
    //do something 
} 

是否第一個 「塊?」如果是這樣,「阻塞」是否意味着它將鎖定節點,直到mongo返回光標?

(第一個例子是從node-mongodb-native的文檔。如果他們爲榜樣阻止,那麼爲什麼他們把文檔中?)

+0

這是在mongodb還是在node.js中執行? 如果第一個,那麼爲什麼把它標記爲node.js? 如果第二個,你在用什麼模塊? – Floby 2013-02-22 10:17:45

+0

本例使用node-mongodb-native。我編輯了這個問題,使其更清晰。謝謝。 – rob 2013-02-22 15:54:03

回答

4

第一種是同步的,將阻止。如果mongo超時,您的節點服務器將無法執行其他任何操作,因此基本上「鎖定」,是的。

這應該避免,除非在服務器初始化期間,或者編寫命令行工具。

第二個函數會在返回mongo的結果時調用回調之前處理其他事件。

相關問題