创建连接执行命令

批量执行命令
./mongo 127.0.0.1:37017/mydb -uadmin -pTran --authenticationDatabase admin --eval "printjson(db.asset_scan.findOne());printjson(db.asset_scan.findOne());"
./mongo 127.0.0.1:37017/mydb -uadmin -pTran --authenticationDatabase admin --eval "db.currentOp()"

执行命令脚本文件
./mongo 127.0.0.1:37017 test.js
./mongo --nodb test.js 不用默认的连接就必须使用 --nodb选项参数


test.js
var url = "mongodb://admin:Tran@127.0.0.1:37017/"
var con = new Mongo(url)
var db = con.getDB("mydb")
printjson(db.stats())test.js

交互式创建分区表
设置分片
use admin
db.auth("admin","admin")
db.runCommand({enablesharding:"mydb"}) //必须先切换到admin数据库然后才能有权限创建分区表
对新表进行设置
db.runCommand({shardcollection:"mydb.asset_acceptance_info",key:{_id:'hashed'}})
对已经有数据的表设置
db.runCommand({shardcollection:"mydb.asset_acceptance_info",key:{"_id":1}})
非交互式创建分区表
var url = "mongodb://admin:Tran@127.0.0.1:37017/"
var con = new Mongo(url)
var db = con.getDB("mydb")
db.adminCommand({shardcollection:"mydb.test7",key:{"_id":1}})
printjson(db.test7.getShardDistribution())


创建分区和索引
var url = "mongodb://admin:Tran@192.168.0.103:37017/"
var con = new Mongo(url)
var db = con.getDB("mydb")
//创建分区表名称为test8
db.adminCommand({shardcollection:"mydb.test8",key:{"_id":1}})
//创建分区表的索引字段
db.test8.ensureIndex({"_id":1})
db.test8.ensureIndex({"ipv4":1})
printjson(db.test8.getShardDistribution())
printjson(db.test8.stats())View Code

分区表的重命名
#先备份原来的表 备份表的名称是-c 后面的字符串asset_scan_result 需要根据情况设置表名称
/data/tian/mongodb-linux-x86_64-amazon-3.6.2/bin/mongodump -h 192.168.0.103:37017 -uadmin -pTrans --authenticationDatabase admin -d mydb -c asset_scan_result -o /data/tian/backuptable/
#手动删除备份好的表,然后重新创建一个新的空表
#还原备份的数据到新表
/data/tian/mongodb-linux-x86_64-amazon-3.6.2/bin/mongorestore -h 192.168.0.103:37017 -uadmin -pTran --authenticationDatabase admin -d mydb -c asset_scan_result /data/tian/backuptable/asset_scan_result.bsonView Code
非交互式批量删除库


vi dropdatabase.js
var url = "mongodb://assert:Trans@192.168.19.10:27017/"
var conn = new Mongo(url)
var dbs=["aaa","bbb","ccc","ddd","eee","fff","jjj","kkk"]
for (var i = 0; i<dbs.length; i++)
{
printjson(dbs[i]);
db = conn.getDB(dbs[i]);
printjson(db.stats())
db.dropDatabase();
};View Code
















