為了提高查詢的效率,MongoDB也提供了索引(和關聯式資料庫的索引一樣,採用B-Tree儲存),主要有單個欄位索引,複合式索引,多鍵索引(用於數組查詢),空間索引,文本索引及雜湊索引.
自從版本2.4以後,MongoDB提供了文本索引,下面來看看如何使用.
1.啟動單個Mongod,注意要設定textSearchEnabled的值
mongod --dbpath dbText --port 28017 --setParameter textSearchEnabled=true
2.串連Mongod:mongo localhost:28017
3.向資料庫中插入幾條記錄:
use test
A. db.tb.insert({"name":"wz","engName":"ryan","age":29})
B. db.tb.insert({"name":"xw","engName":"ryans","age":29})
C. db.tb.insert({"name":"wxc","engName":"baby","age":2})
D. db.tb.insert({"name":"ryan","engName":"wz","age":29})
E. db.tb.insert({"name":"bu","engName":"bill","age":"ryan"})
在name和engName兩個欄位上構建文本索引:
db.tb.ensureIndex({"name":"text","engName":"text"})
然後搜尋"ryan",db.tb.runCommand("text",{search:"ryan"}),查詢到A B D 3條記錄
刪除上述索引,db.dropIndex("name_text_engName_text"),
給所有欄位建立文本索引,db.ensureIndex({"$**":"text"}),重新執行上述搜尋,查詢到A B D E 4條記錄