2015-10-07 69 views
0

在我的Mac上查詢Mongo的收集與Robomongo我得到的所有3,430結果在短短100毫秒:節點快遞API慢(與MongoDB的)

db.getCollection('profiles').find({'Uploader':/iazi/}) 

當查詢我的節點/快速/貓鼬API在本地運行,我必須等待2秒鐘才能得到完全相同的數據。

這裏是我的代碼:

server.js

router.route('/profiles').get(profile.rawList); 

profile.js

exports.rawList = function(req, res) { 
    var domain = '@'+req.user.email.split('@').pop(); 
    Profile 
    .find({'Uploader': new RegExp(domain, 'i')}) 
    .exec(function(err, data){ 
     res.send(data); 
    }) 
} 

誰是這些1,900ms差的罪魁禍首?它是貓鼬嗎?它是節點嗎?我寫錯了什麼?

附加信息:在短短的8ms

exports.superSimple = function(req, res) { 
    res.json({foo:bar}) 
} 
+0

查詢是否一樣?第一個是所有者,第二個是上傳者?你可以解釋查詢http://docs.mongodb.org/manual/reference/method/cursor.explain/ ,看看mongo正在採取什麼策略 – dm03514

+0

謝謝你好。我使用Uploader在Robomongo中再次嘗試,速度一樣快......我相應地編輯了我的問題。 –

回答

1

我懷疑貓鼬這樣做了一些挖以下響應。我能找到貓鼬的表現很少,但我確實得到了this。它很老,但可能仍然有效,因爲Mongoose對每個返回的對象仍然有很大的魔力。嘗試將其作爲「精簡」查詢來執行,並且您應該獲得更好的性能,因爲它只是加載數據。

+0

謝謝,它縮短了超過50%的響應時間。 –