mongodb非交互式命令

创建连接执行命令

         

批量执行命令

        ./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.bson
View 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

 

posted @ 2022-06-21 09:24  不懂123  阅读(701)  评论(0编辑  收藏  举报