MENU

MongoDB数组索引教程

September 7, 2022 • 已被 342 位童鞋围观过 • 教程文章,Mongo

之前一直是使用Studio 3T的图形化管理软件,使用客户端创建索引,查询非常的慢,后来经过网上查询搜索,改用命令行 db.dbname.ensureIndex({"search.topKeywords.name":1}) 创建索引后,速度非常的快 记录一下。

在 MongoDB 创建索引时,我们还可以为数组类型的字段创建一个索引,当为数组类型的字段创建索引时,MongoDB 会自动为数组里的每个元素创建索引。

MongoDB数组索引详解

语法

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

参数

名称 描述
db_name 数据库名
table_name 集合名
field 数组类型的字段

案例

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

mongo

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

use haicoder

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

db.haicoder.insert([    
    {id:1, "url" : "haicoder.net/c", "courses" : ["Python", "Java"] },
    {id:2, "url" : "haicoder.net/cpp","courses" : ["Cpp", "Go"] },
    {id:3, "url" : "haicoder.net/golang", "courses" : ["Vim", "MongoDB"] }
]);

执行完毕后,我们看到,此时提示我们成功插入了多条记录,现在,我们为 courses 字段创建数组索引,具体命令如下:

db.haicoder.ensureIndex({courses:1})

执行完毕后,我们再次查看所有的索引,具体命令如下:

db.haicoder.getIndexes()

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

db.haicoder.find({courses:"Python"}).explain()

执行完毕后,我们看到,提示我们已经使用了索引。

MongoDB数组索引总结

在 MongoDB 创建索引时,我们还可以为数组类型的字段创建一个索引,当为数组类型的字段创建索引时,MongoDB 会自动为数组里的每个元素创建索引。

Last Modified: September 28, 2023