MongoDB的索引
-
为什么要创建索引?
- 加快查询速度
- 加快数据的去重
创建简单的索引
- 语法:
-
db.col_name.ensureIndex({属性:1})
, 1表示升序, -1表示降序 db.col_name.createIndex({属性:1})
- 上面两个命令等价
-
- 具体操作:db.col_name.ensureIndex({name:1})
索引查看
- 默认情况下:_id是集合的索引
- 查看方式:
db.col_name.getIndexes()
创建唯一索引
- 在默认情况下MongoDB的索引字段的 值是可以相同的
- 某字段创建唯一索引,则表明该字段不允许出现相同值
- 添加唯一索引的语法:
db.col_name.ensureIndex({属性:},{"unique":true})
删除索引
- 语法:
db.col_name.dropIndex({索引名称:1或者-1})
建立复合索引
在进行数据去重的时候,可能用一个字段来保证数据的唯一性,这个时候可以考虑建立符合索引来实现。例如:抓全贴吧文章的名字作为唯一索引对数据进行去重是不可取的,因为很多帖子的名称相同。
- 建立复合索引的语法:
db.col_name.ensureIndex({字段1:1,字段2:1})
索引注意事项
- 根据需要 选择是否建立唯一索引
- 索引字段是升序还是降序在单个索引的情况下不影响查询效率,但是在符合索引的条件下是会有影响的。
- 例如:在进行查询的时候,如果字段1需要升序方式排序输入,字段2需要降序方式排序输出,那么此时符合索引的建立需要把字段1设置为1,字段2设置为-1
MongoDB的备份与恢复
备份
- 备份的语法:
mongodump -h dbhost -d dbname -o dbdirectory
-
-h
: 服务器地址,也可以指定端口号 -
-d
: 需要备份的数据库名称 -
-o
: 备份的数据存放的位置,此目录中存放着备份出来的数据- 示例:
mongodump -h 192.168.196.128:27017 -d text -o ~/Desktop/text_bak
- 示例:
恢复
- 恢复语法:
mongorestore -h dbhost -d dbname --dir dbdirectory
-
-h
: 服务器地址 -
-d
: 需要恢复的数据库示例 -
--dir
: 备份的数据所在位置(路径) - 示例:
mongorestore -h 192.168.196.128:27017 -d text --dir ~/Desktop/text_bak
网友评论