MongoDB所有字段全文索引

MongoDB所有字段全文索引教程

MongoDB 中如果我们需要为文档中的所有字段创建全文索引,如果一个个字段单独创建太麻烦,MongoDB 为我们提供了 $** 可以用于为所有字段创建全文索引。

MongoDB所有字段全文索引详解

语法

db_name.table_name.createIndex({"$**": "text"});

参数

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

说明

使用 $** 可以为所有字段创建全文索引。

案例

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

mongo

如下图所示:

61_MongoDB所有字段全文索引.png

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

use haicoder

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

db.haicoder.insert([ {"url" : "haicoder.net/c", "content" : "cpp in haicoder"}, {id:2, "url" : "haicoder.net/cpp","content" : "c in haicoder"}, {id:3, "url" : "haicoder.net/golang","content" : "go in haicoder"} ]);

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

62_MongoDB所有字段全文索引.png

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

db.haicoder.ensureIndex({"$**": "text"});

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

63_MongoDB所有字段全文索引.png

我们看到,我们已经成功为所有字段创建了全文索引,现在,我们使用全文搜索进行搜索,具体命令如下:

db.haicoder.find({"$text": {"$search": "cpp"} }, {_id:0} )

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

64_MongoDB所有字段全文索引.png

我们看到,此时,我们同时匹配了 url 字段和 content 字段。

MongoDB所有字段全文索引总结

在 MongoDB 中如果我们需要为文档中的所有字段创建全文索引,如果一个个字段单独创建太麻烦,MongoDB 为我们提供了 $** 可以用于为所有字段创建全文索引。