php 创建mongodb索引,mongoDB索引属性

如何设置索引的属性

aea86d9f5806885477994763275eca36.png

索引比拟重要的属性

52be6d5f7cb5ea28d85da1a464adfcb9.png

索引的名字

6c00bb78352cad7e83f2164a2e99bc70.png

查看mongoDB默认生成的索引的名字

832f158c849a66d8b2effd1bd0ea9ada.png

mongoDB默认生成的索引名字是key1_1(或-1)key2_1(或-1)

创立自定义名字的索引db.test_2.ensureIndex({x:1,p:1},{name:'myIndexName'})

0cc7d8c47723d7ca81721c118ac0ddcf.png

查询创建的成果:

2adff2a689278e278e9d8eae30e84130.png

删除索引 依据索引名字删除索引db.test_2.dropIndex('myIndexName')

167648580dde457794e5cbb17f9c3ce0.png

索引的唯一性

121271fd915568292e1a9b56fd7a4295.png

创建了唯一索引的字段值不克不及重复.

创立唯一索引db.test_4.ensureIndex({m:1,n:1},{unique:true})

cbda2b4664b6c16a6480b46345a7112e.png

不克不及插入重复记录:

d9437ac724f544b1c3006657bf521704.png

索引稀疏性

4857bc14d331e30ba7a920e04658dcb1.png

mongoDB默认创立的索引是不稀疏.

稀疏性为true,mongoDB不会为其他的字段创立索引,而只会为指定的字段创立索引.

查询存在某个字段的记录db.test_4.find({m:{$exists:true}})

85769d5a57afe441e5bb13c071706cf2.png

方才插进去的{n:1}的记录查询不到.

创立稀疏索引db.test_4.ensureIndex({m:1},{sparse:true})

6c54e006dd83a957264c11ca357333fa.png

如果创建的是稀疏索引,则索引不包括的字段是查询不出来的.

d25e5fcdac3524a6893ec65a2be3661e.png

仔细看看上图,必要使用hint,强制使用某个索引,由于m_1索引是稀疏索引,并且该索引只有m字段,没有其他字段,所以根据其他字段查询的时候是会查询不到记录的.

下面我们测试一下不是稀疏索引的情况:

在w字段创立索引:

f81516fb7e50c1a3f5a41078c736f08d.png

查询一下不存在记录:

9529fbf942096b00846b94e00c2e00aa.png

可以看到是可以查询到不存在w字段的记录.

过时索引

ea66c77dd9665ddd708b036f8817ada6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值