mongodb-manual-3.0.1 Indexes
2015-05-28 15:29
399 查看
8.1
mongodb的索引定义在collections级别,并且支持索引到一个document,或这个document的子部分。
索引可以用来进行两个方向的排序。
Cover Results:
覆盖索引的好处有两方向:
1.可以直接通过索引返回数据,不用再看别的地方。
2.不用把document拿入内存
Compound Index(复合索引)
复合索引的顺序非常重要,如果索引是{ userid:1 ,score : -1},那么索引是顺序首先是按userid排列,在每一个userid中,score按下降顺序排列。
multikey indexes
为了索引到一个包括数组的域,mongodb给数组中的每个成员都添加了一个索引项。multikey索引可以让mongodb使用数组的值返回document.mongodb会自己决定应不应该创建multikey。 multikey索引支持的数组的数据类型为:string,numbers和内嵌document
{
userid: "xyz",
addr:
[
{zip : "10036", ...},
{zip: "94301", ...}
],
}
{“addr.zip” : 1 }index
8.1.3 index properties
1.唯一性索引
2.稀疏索引:只包含加入索引的field.
3.TTL索引:可以让系统自动删除一些文档
8.1.4 index intersection
mongodb可以交互使用多个索引完成语句。
8.2.1
Behavior of Indexes
在mongodb中所有索引都是B-tree,可以高效的支持精确查询和范围查询。
索引在内部是顺序存储的,它的顺序是加了这个索引的域的顺序。
Ordering of Indexes
mongodb索引的排序可能是上升的也可能是下降的。尽管索引是有序的,但是mongodb遍历索引时,有时是顺序的有时是逆序的。
但是组合索引的顺序非常重要。
在local database 中的capped collection没有objectID
可以在内嵌域中创建索引,内嵌域中的索引不同于内嵌document的索引.
内嵌document索引将会把document的全部内容都装进索引中,直到超过索引的最大尺寸。
当要查询内嵌document时,field的顺序非常重要,必须完全匹配:
{
_id:ObjectId(...),
metro:{
city:"New York",
state:"NY"
},
name:"Giant Factory"
}
db.factories.find( { metro:{ city:"New
York", state:"NY"
} } )
db.factories.find( { metro:{
state:"NY", city:"New
York" } } )
上面两个查询只有第一个能查询到。
mongodb的索引定义在collections级别,并且支持索引到一个document,或这个document的子部分。
索引可以用来进行两个方向的排序。
Cover Results:
覆盖索引的好处有两方向:
1.可以直接通过索引返回数据,不用再看别的地方。
2.不用把document拿入内存
Compound Index(复合索引)
复合索引的顺序非常重要,如果索引是{ userid:1 ,score : -1},那么索引是顺序首先是按userid排列,在每一个userid中,score按下降顺序排列。
multikey indexes
为了索引到一个包括数组的域,mongodb给数组中的每个成员都添加了一个索引项。multikey索引可以让mongodb使用数组的值返回document.mongodb会自己决定应不应该创建multikey。 multikey索引支持的数组的数据类型为:string,numbers和内嵌document
{
userid: "xyz",
addr:
[
{zip : "10036", ...},
{zip: "94301", ...}
],
}
{“addr.zip” : 1 }index
8.1.3 index properties
1.唯一性索引
2.稀疏索引:只包含加入索引的field.
3.TTL索引:可以让系统自动删除一些文档
8.1.4 index intersection
mongodb可以交互使用多个索引完成语句。
8.2.1
Behavior of Indexes
在mongodb中所有索引都是B-tree,可以高效的支持精确查询和范围查询。
索引在内部是顺序存储的,它的顺序是加了这个索引的域的顺序。
Ordering of Indexes
mongodb索引的排序可能是上升的也可能是下降的。尽管索引是有序的,但是mongodb遍历索引时,有时是顺序的有时是逆序的。
但是组合索引的顺序非常重要。
在local database 中的capped collection没有objectID
可以在内嵌域中创建索引,内嵌域中的索引不同于内嵌document的索引.
内嵌document索引将会把document的全部内容都装进索引中,直到超过索引的最大尺寸。
当要查询内嵌document时,field的顺序非常重要,必须完全匹配:
{
_id:ObjectId(...),
metro:{
city:"New York",
state:"NY"
},
name:"Giant Factory"
}
db.factories.find( { metro:{ city:"New
York", state:"NY"
} } )
db.factories.find( { metro:{
state:"NY", city:"New
York" } } )
上面两个查询只有第一个能查询到。
相关文章推荐
- mongodb-manual-3.0.1 6.1-6.2
- MongoDB 稀疏(间隙)索引(Sparse Indexes)
- centos6.6下安装MongoDB3.0.1
- mongodb-manual-3.0.0 indexes2
- MongoDB-Manual-Master 读书笔记-简介及安装
- https://docs.mongodb.org/manual/reference/operator/aggregation/unwind/#examples
- Mongodb --- Manual sharding
- MongoDB-Manual-Master 读书笔记-CRUD操作
- MongoDB:The Definitive Guide 2nd笔记之特殊Indexes
- MongoDB Manual 3.6 The mongo Shell CRUD operations create, read, update, and delete documents(增删改查)
- Mongodb Covered Indexes
- Mongodb 3.2 Manual阅读笔记:CH9 存储
- Mongodb源码分析--游标Cursor
- MongoDB的查询
- 如何修改MONGODB字段的数组,不用整个字段修改
- Mongodb详解与安装
- 学习笔记—在laravel4.2中配置mongodb
- mongodb集群——配置服务器放分片meta信息,说明meta里包含了哪些数据信息
- mongodb学习:查询
- MongoDB 备份恢复启动后执行操作报错:Error:couldn't add user:not master