MongoDB子文档索引

MongoDB子文档索引教程

MongoDB 创建索引时,我们还可以为子文档创建一个索引,为子文档创建索引,我们使用 field.subfiled 的形式。

MongoDB子文档索引详解

语法

db_name.table_name.createIndex({field.subfiled:1})

参数

名称 描述
db_name 数据库名
table_name 集合名
field 字段
subfiled 子字段

说明

为子字段 subfiled 创建索引。

案例

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

mongo

如下图所示:

52_MongoDB子文档创建索引.png

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

use haicoder

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

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

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

53_MongoDB子文档创建索引.png

我们看到,此时提示我们成功插入了多条记录,现在,我们为 course 字段里面的 name 字段创建子文档索引,具体命令如下:

db.haicoder.ensureIndex({"course.name":1})

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

54_MongoDB子文档创建索引.png

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

db.haicoder.getIndexes()

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

55_MongoDB子文档创建索引.png

我们看到,我们已经成功创建了子文档索引,此时,我们再在数组里面查询元素时,就会使用该索引,现在,我们使用如下命令,查看索引的使用,具体命令如下:

db.haicoder.find({"course.name":"golang"}).explain()

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

56_MongoDB子文档创建索引.png

我们看到,提示我们已经使用了索引。

MongoDB子文档索引总结

在 MongoDB 创建索引时,我们还可以为子文档创建一个索引,为子文档创建索引,我们使用 field.subfiled 的形式。