批量更新,一定要加上最后的条件:
db.getCollection('cuishou_user').update( { 'id':{$in:[1,2,3,10,12,13]}}, //query {$set:{ 'contract_status': NumberInt(1)}},// update {multi:true,upsert:false} // 批量更新)
导入导出的工具,没有的话找台机子安装一下mongo,bin文件夹中有mongoexport,mongoimport。navicat中要你输入路径啥的。
千万别用脚本一条条的插入,几百万条数据都慢得要死。
直接用export和import工具做,更快,更简单。
#!/bin/bashcollections=( "student" "teacher" )for var in ${collections[@]}; do echo "=============================="$var /root/mongodb-linux-x86_64-4.0.4/bin/mongoexport --port 27017 --host localhost -u root -p 123456-c $var -d this_db --type=json --out $var.json --authenticationDatabase admindonefor var in ${collections[@]}; do echo "=============================="$var /root/mongodb-linux-x86_64-4.0.4/bin/mongoimport --port 27017 --host localhost -u root -p 123456-c $var -d that_db --type=json --file $var.json --authenticationDatabase admindoneecho "finish"
用脚本和导入导出工具是最快的方法了,效果杠杠滴,不会的可以问我~
另外,mongo批量修改的脚本也有,就不发上来了