MongoDB部分索引

MongoDB部分索引

MongoDB 部分索引只为那些在一个集合中,满足指定的筛选条件的文档创建索引。由于部分索引是一个集合文档的一个子集,因此部分索引具有较低的存储需求,并降低了索引创建和维护的性能成本。

部分索引通过指定过滤条件来创建,可以为 MongoDB 支持的所有索引类型使用部分索引。

MongoDB部分索引详解

语法

db_name.table_name.createIndex({field:1},{partialFilterExpression:{field2: {$gt:25}}})

参数

名称 描述
db_name 数据库名
table_name 集合名

说明

使用 partialFilterExpression 创建部分索引。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

43_MongoDB创建部分索引.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insert 插入四条记录,具体命令如下:

db.haicoder.insert([ {id:1, "url" : "haicoder.net/c", "score" : 100 }, {id:2, "url" : "haicoder.net/cpp", "score" : 90 }, {id:3, "url" : "haicoder.net/golang", "score" : 80 }, {id:4, "url" : "haicoder.net/java", "score" : 60 } ]);

执行完毕后,此时,如下图所示:

44_MongoDB创建部分索引.png

我们看到,此时提示我们成功插入了多条记录,现在,我们为 score 字段创建部分索引,具体命令如下:

db.haicoder.ensureIndex({url:1}, {partialFilterExpression:{score: {$gt:80}}})

执行完毕后,如下图所示:

45_MongoDB创建部分索引.png

现在,我们再次查看所有的索引,具体命令如下:

db.haicoder.getIndexes()

执行完毕后,此时,如下图所示:

46_MongoDB创建部分索引.png

我们看到,我们已经成功创建了部分索引。

MongoDB部分索引总结

MongoDB 部分索引只为那些在一个集合中,满足指定的筛选条件的文档创建索引。由于部分索引是一个集合文档的一个子集,因此部分索引具有较低的存储需求,并降低了索引创建和维护的性能成本。