没有合适的资源?快使用搜索试试~ 我知道了~
MongDB的索引分为以下几种类型:单键索引、复合索引、多键索引、地理空间索引、全文本索引和哈希索引在一个键上创建的索引就是单键索引,单键索引是最常见的索引,如MongoDB默认创建的_id的索引就是单键索引。例子:如果要在如上的文档中创建单键索引,语句如下:其存储结构如下图:如果想要在子文档的一个键上建立单键索引,其例子如下:结构如上,其创建语句如下:如果想要在整个子文档上建立单键索引,其例子如下:结构如上,其创建语句如下:下面的语句能够使用其索引查找到上面的数据:但再下面的这一条语句就查不到数据了,说明子文档的查找必须是精确匹配,包括子文档中的顺序:在多个键上建立的索引就是复合索引。例子:
资源推荐
资源详情
资源评论
MongoDB的学习的学习--索引类型和属性索引类型和属性
索引类型
MongDB的索引分为以下几种类型:单键索引、复合索引、多键索引、地理空间索引、全文本索引和哈希索引
单键索引(Single Field Indexes)
在一个键上创建的索引就是单键索引,单键索引是最常见的索引,如MongoDB默认创建的_id的索引就是单键索引。
例子:
{
"_id" : ObjectId(...),
"name" : "Alice",
"score" : 27
}
如果要在如上的文档中创建单键索引,语句如下:
db.users.ensureIndex( { "score" : 1 } )
其存储结构如下图:
如果想要在子文档的一个键上建立单键索引,其例子如下:
{
"_id": ObjectId(...),
"name": "John Doe",
"address": {
"street": "Main",
"zipcode": "53511",
"state": "WI"
}
}
结构如上,其创建语句如下:
db.users.ensureIndex( { "address.zipcode": 1 } )
如果想要在整个子文档上建立单键索引,其例子如下:
{
_id: ObjectId(...),
metro: {
city: "New York",
state: "NY"
},
name: "Giant Factory"
}
结构如上,其创建语句如下:
db.factories.ensureIndex( { metro: 1 } )
下面的语句能够使用其索引查找到上面的数据:
db.factories.find( { metro: { city: "New York", state: "NY" } } )
但再下面的这一条语句就查不到数据了,说明子文档的查找必须是精确匹配,包括子文档中的顺序:
db.factories.find( { metro: { state: "NY", city: "New York" } } )
复合索引(Compound Indexes)
在多个键上建立的索引就是复合索引。
例子:
{
"_id": ObjectId(...),
"userid": "aa1",
"category": ["food", "produce", "grocery"],
"location": "4th Street Store",
"score": 4
}
如果要在如上的文档中创建复合索引,语句如下:
db.products.ensureIndex( { "userid": -1, "score": 1 } )
userid是正序排列,score是逆序排列的。其存储结构如下图:
这个索引可以支持如下的排序:
db.products.find().sort( { userid: 1, score: -1 } );
db.products.find().sort( { userid: -1, score: 1 } );
db.products.find().sort( { userid: 1 } );
db.products.find().sort( { userid: -1 } );
不能支持如下的排序:
db.products.find().sort( { userid: 1, score: 1 } );
db.products.find().sort( { userid: -1, score: -1 } );
db.products.find().sort( { score: 1 } );
db.products.find().sort( { score: -1 } );
多键索引(Multikey Index)
如果在一个数组上面创建索引,MongoDB会自己决定,是否要把这个索引建成多键索引。
如果数据结构如下(两种):
{a: [1, 2], b: 1}
{a: 1, b: [1, 2]}
你可以创建{ a: 1, b: 1 },会是多键复合索引。
多键索引结构如下:
剩余6页未读,继续阅读
资源评论
weixin_38517105
- 粉丝: 3
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功