为了提高查询的效率,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条记录