mongodb数据库教程-MongoDB高级索引

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在这一章节中,我们来学习高级索引,假设users集合的以下文档 –

{    "address": {       "city": "Haikou",       "province": "Hainan",       "pincode": "123456"    },    "tags": [       "music",       "cricket",       "blogs"    ],    "name": "Maxsu" } 

上述文档包含地址子文档和标签数组。

索引数组字段

假设要根据用户的标签搜索用户文档。为此,我们将在集合中的tags数组上创建一个索引。

在数组上创建一个索引依次为每个字段创建单独的索引条目。所以在这个例子中,当在tags数组上创建一个索引时,将为其值musiccricketblogs创建单独的索引。

要在tags数组上创建索引,请使用以下代码 –

>db.users.ensureIndex({"tags":1}) 

创建索引后,可以搜索这个集合的标签字段 –

>db.users.find({tags:"cricket"}) 

要验证是否使用正确的索引,请使用以下说明命令 –

>db.users.find({tags:"cricket"}).explain() 

上面的命令生成:“cursor”:“BtreeCursor tags_1”,它确认使用了正确的索引。

索引子文档字段

假设要搜索基于cityprovincepincode字段的文档。 由于所有这些字段都是地址子文档字段的一部分,因此将在子文档的所有字段上创建一个索引。

要在子文档的所有三个字段上创建索引,请使用以下代码 –

>db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1}) 

创建索引后,就可以使用此索引来搜索任何子文档的字段了,如下所示:

>db.users.find({"address.city":"Haikou"}) 

请记住,查询表达式必须遵循指定的索引的顺序。 所以上面创建的索引将支持以下查询 –

>db.users.find({"address.city":"Haikou","address.province":"Hainan"}) 

它还将支持以下查询 –

>db.users.find({"address.city":"Haikou","address.province":"Hainan",    "address.pincode":"12345"}) 

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mongodb数据库教程/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/03/31/mongodb数据库教程-mongodb高级索引/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注