假設我有一組用戶並希望對這些用戶的用戶名實現自動填充。我看了一下mongodb文檔,$ regex似乎是這樣做的一種方法。有沒有更好的辦法?更好的意思是更高效/更好的實踐。在MongoDB上實現自動完成
9
A
回答
9
正如@Thilo建議的那樣,您可以使用幾個想法,包括前綴。
最重要的是要有非常快速的請求(因爲你想自動完成到感覺 instaneous)。所以你必須使用正確使用索引的查詢。
使用正則表達式:使用/^prefix/
(重要的是^指定使查詢使用索引必需的行的開頭)。
範圍查詢是太好:{ $gt : 'jhc', $lt: 'jhd' } }
更復雜,但速度更快:你可以存儲在蒙戈與像輸入前綴樹(又名嘗試):
{usrPrefix : "anna", compl : ["annaconda", "annabelle", "annather"]}
{usrPrefix : "ann", compl : ["anne", "annaconda", "annabelle", "annather"]}
這最後的解決方案是非常快(當然,如果是compl的索引),但根本沒有空間效率。你知道你選擇的權衡。
2
5
我們確實使用正則表達式它和它的快,只要你有一個索引,並使用/ ^值/
要知道,你不能與索引使用不區分大小寫的選項,所以你可能要將字符串的小寫字母存儲爲文檔中的另一個字段,並將其用於自動填充。
我已經完成了300萬個文檔的測試,它仍然是瞬間顯示的。
相關問題
- 1. 在jCombobox上實現自動完成
- 2. 在iPad上實現自動完成
- 3. jQuery自動完成實現
- 4. 自動完成庫(不是「如何實現自動完成」)?
- 5. MongoDB搜索 - 自動完成
- 6. Angular2 ng2自動完成實現問題
- 7. 自動完成服務器端實現
- 8. 使用Solr實現自動完成
- 9. 實現Json自動完成類別
- 10. 如何實現自動完成
- 11. devbridge自動完成查詢AJAX實現
- 12. jQuery:在隱藏Div上實現UI自動完成
- 13. 如何在英特爾App Framework上實現自動自動完成功能?
- 14. 如何實現類似於jQuery UI自動完成的Dojo自動完成?
- 15. 高級用戶的上下文自動完成 - 實現建議
- 16. 遊標適配器實現自動完成textview上的Android
- 17. 實現自動建議功能(不自動完成)
- 18. 爲CLI應用程序實現自動自動完成
- 19. 自動完成實施
- 20. 如何使jqueryui自動完成實際自動完成?
- 21. .net中的自動完成與mongodb
- 22. 在視圖上自動完成按鈕touchupinside動作出現?
- 23. 如何在iphone中使用線程實現自動完成textfield
- 24. 如何在JTable的單元中實現自動完成功能?
- 25. 在HTML輸入中實現自動完成
- 26. 如何在cakephp中實現搜索欄自動完成
- 27. 如何在ASP.NET MVC中實現自動完成?
- 28. 在CKeditor中實現JQuery UI自動完成功能
- 29. 如何在elasticsearch中實現自動完成
- 30. 通過Json在MVC4中實現自動完成文本框
優秀的答案。雖然沒有完成嘗試。就我個人而言,我從來沒有在Mongo中使用Regexes的「瞬間」感覺。這應該做的訣竅,使其更快! – Vivek
事實上,mongo中的正則表達式並沒有很好地實現。然而,當你想要流暢的東西時,你不會想要在實時查詢數據庫,延遲太高。實現自動完成的正確方法是異步加載一些通常的完成,並隨着時間(和用戶輸入)的完成而完成。 – kamaradclimber