2015-02-12 59 views
0

我有一個集合,我想要搜索以查找[enabled]爲true的最早的[changed]文檔。爲了實現這一點,我已確保[更改]字段已編入索引。Node + Mongo:在排序中利用索引

以下會利用這個指數嗎?

records.findOne({enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) { 

文檔出現給我建議,我需要有才能的指數過濾爲它是在排序是有用的。在[改變]上增加一個(否則多餘的)過濾器會更好地工作嗎?

records.findOne({changed:{$gte:0}, enabled:true}, {sort:[['changed', 'asc']]}, function(error, record) { 

回答

1

即使您之前未在索引上過濾,索引也可以僅用於排序。但是,在過濾器中使用索引可以加快查詢速度,因爲您可以更快地減少掃描的數據集。

您應該在兩個查詢中使用explain來驗證哪一個更好。

+0

謝謝(不知道我是否應該將此標記爲已回答,但我沒有看到這樣做的選項)。 – Ionwerks 2015-02-12 19:14:01