1.交互模式下登录库:
登录命令:/app/mongodb/bin/mongo 192.168.1.100:30000
use 库名
db.auth("用户名","密码")
2.数据库备份
#单个集合备份
mongodump --host 192.168.1.100:30000 -uadmin -p"XXXXXX" --authenticationDatabase admin -d educloud -c 集合名称 -o ./
mongoexport -h 192.168.1.100:30000 -u educloud -p "XXXXXX" -d educloud -c 集合名称 -o /app/集合名称.bson
#整库备份:
mongoexport -h 192.168.1.100:30000 -u educloud -p "XXXXXX" -d educloud -o ./
备注:
.bson文件存储集合的实际数据
metadata.json 文件存储集合的结构信息(元数据)-----索引信息
3.只备份集合的字段:
mongodump --host 192.168.1.100:30000 -uadmin -p"123456" -d educloud -c 集合名称 --query '{"$where":"false"}' -o ./app/educloud
4.还原备份数据
#整库还原:
mongorestore --host 192.168.1.10:30000 --username educloud --password 123456 -d educloud /app/educloud
#单集合还原:
mongoimport -h 192.168.1.100:30000 -u educloud -p xxxxxxxx -d educloud -c question_info question_info.bson
5.mongodb数据库中的数据查询
db.getCollectionNames().forEach(function(collection) {
var stats = db[collection].stats();
var sizeMB = (stats.size + stats.totalIndexSize) / 1024 / 1024;
print(
"集合: " + collection.padEnd(20),
"数据大小: " + (stats.size / 1024 / 1024).toFixed(2) + " MB",
"存储大小: " + (stats.storageSize / 1024 / 1024).toFixed(2) + " MB",
"索引大小: " + (stats.totalIndexSize / 1024 / 1024).toFixed(2) + " MB",
"总大小: " + sizeMB.toFixed(2) + " MB"
);
});
size:集合中文档的实际数据大小(未压缩)。
storageSize:集合占用的存储空间
totalIndexSize:集合所有索引的大小。
totalSize():返回 storageSize + totalIndexSize 的总和
6.查看集合索引信息
db.集合名称.getIndexes()
printjson( db.educloud_inbox.getIndexes() )----------------->mongodb连接工具可能不显示内容,需要用到printjson
7.查看集合的状态
db.集合名称.stats()
db.集合名称.stats(1024*1024) -------------------->集合大小会使用M来显示
8.查看集合中的数据
db.集合名称.find().limit(10).pretty() ------------------------------>显示集合前10条数据
9.删除集合
db.集合名称.drop()
10.待补充