2011-10-14 56 views

回答

3

我沒有基準這一點,但它可能確實意味着性能。顯然,「$其中」爲每個對象的JavaScript執行,但「國防部$」是一個MongoDB的本地運營商,這要快很多,因爲沒有必要執行任何JavaScript爲每個對象。也有看看下面的句子,從文檔:

Javascript executes more slowly than the native operators listed on this page, 
but is very flexible. 

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D

+0

你想過@Andrew Orsich的指數回答任何想法? – kamaci

+0

對於JavaScript查詢它無法使用索引,因爲JavaScript有每個對象,這與您的查詢選擇進行評估。所以:如果你有一個內置的運營商像* $ MOD *和JavaScript之間的選擇,JavaScript的應該永遠是慢,因爲JavaScript是爲每個對象*評估和*它不能使用索引,而內置運算符僅在您的查詢由mongodb *進行分析時評估,而且它可以使用索引。這可能很有趣,以此爲基準... – aurora

+0

感謝您的回答。還有一個。您可以在任何地方閱讀索引的含義嗎?我想我不知道是什麼。 – kamaci

1

任何MongoDB中的JavaScript /正則表達式查詢不能使用索引和工作緩慢。所以你的問題的答案是肯定的,文件說關於性能。關於服務器端

更多信息的JavaScript你可以找到here