MongoDB 学习笔记之 索引

Posted AK47Sonic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 学习笔记之 索引相关的知识,希望对你有一定的参考价值。

索引:

 

db.media.createIndex({"Tracklist": 1})

  • 1表示升序
  • -1表示降序

 

我们要着重看一下对数组创建索引的情况。

构建一个集合:db.media.insertOne({"Type": "CD", "Artist": "Nirvana", "Title": "Nevermind", "Tracklist": [{"Track": 1, "Title": "AAA", "Length": 10},{"Track": 2, "Title": "BBB", "Length": 20}]})

 

对数组创建索引:

db.media.createIndex({"Tracklist": 1})

查询:

db.media.find({"Tracklist.Track": 2}).explain(true)

发现并未使用索引。

db.media.find({"Tracklist": {"Title": "AAA"}}).explain(true)

 db.media.find({"Tracklist": {"Track": 1, "Title": "AAA", "Length": 10}}).explain(true)

都使用了Tracklist索引。

所以如果对数组建立了索引,查询要指定的是文档对象,而不是键值。

以上是关于MongoDB 学习笔记之 索引的主要内容,如果未能解决你的问题,请参考以下文章

mongodb学习笔记之索引(转)

MongoDB 学习笔记之 地理空间索引入门

MongoDB 学习笔记之 TTL索引,部分索引和文本索引

MongoDB 学习笔记之 $or与索引关系

MongoDB学习笔记(索引)

MongoDB学习笔记MongoDB索引那点事