查看关于索引的相关信息: db.collection.stats()
查看使用索引的情况: db.collection.find({key:value}).explain()
删除索引: db.collection.dropIndex({key:1}) 注:删除集合,也会将集合中的索引全部删除
创建唯一索引: db.collection.ensureIndex({key:1},{unique:true}) 注1就是true 0是false;
创建固定的集合:固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制; 例:db.createCollection(“collectionName”,{capped:true,size:100000,max:100}); 1万kb,100条文档 如果size没满才会以max来删除。
将普通集合转换成固定集合:db.runCommand({convertToCapped:“collectionName",size:10000,max:100});
mongoDB数据库的备份和恢复
1.备份 mongodump -h dbhost(主机和端口号) -d dbname(数据库) -o dbdirectory(输出文件路径)
2.恢复 mongorestore -h dbhost (主机和端口号) -d dbname (数据库) -directoryperdb dbdirectory(恢复文件路径)
3.导出 mongoexport -h dbhost (主机和端口号)-d dbname (数据库)-c collectionName(集合名) -o output(导出路径)
4.导入 mongoimport -h dbhost (主机和端口号)-d dbname (数据库) -c collectionname(集合名) -o output(导入路径)
mongoDB安全和认证
1.创建超极管理员
use admin
db.addUser("root","111");
2.创建普通用户
use test
db.addUser("zhangsan","111")
db.addUser("lisi","111",true);开启只读
3.重新启动数据库服务,并开启安全检查
mongod --dbpath c:\mongo_data --auth(权限认证)