编写bash脚本来更新mongo数据库数据
2016-08-11 15:02
435 查看
今天接到一个任务,需要把两万的member的某个字段改为true, 然后就开始了,
接收到的文件是一个一列超长的member id文件,然后在shell使用
split -l 1200 member.txt member_
将member.txt按照1200的条数分割成多个文件,主要是因为是数据量太大,所以切成多个文件,切成的文件类似member_aa member_ab member_ac之类的
然后编写bash脚本
#!/bin/bash
#Disable some member by memberId
function readFile()
{
k=0
array=()
while read myline
do
line="ObjectId('${myline}'),"
array[$k]=$line
let k=($k+1)
done < $1
array[$k]="ObjectId('${myline}')"
set='$set'
in='$in'
memberIds=${array[@]}
mongo 数据库名 --eval "db.member.update({'_id':{'$in':[$memberIds]}}, {'$set':{'isDisabled':true}},
{multi:true})"
return 1
}
filename='./member_a'
path=('y' 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x')
num=0
for pathName in ${path[@]}
do
filePath="${filename}${pathName}"
readFile "$filePath"
let num=($num+$?)
echo "have been finished $expr $num / 25, this file name is $filePath"
done
echo "successful !"
----------------------------------------------------割割割--------------
然后使用命令:
bash 文件名
或者
chmod +x 文件名
./文件名
接收到的文件是一个一列超长的member id文件,然后在shell使用
split -l 1200 member.txt member_
将member.txt按照1200的条数分割成多个文件,主要是因为是数据量太大,所以切成多个文件,切成的文件类似member_aa member_ab member_ac之类的
然后编写bash脚本
#!/bin/bash
#Disable some member by memberId
function readFile()
{
k=0
array=()
while read myline
do
line="ObjectId('${myline}'),"
array[$k]=$line
let k=($k+1)
done < $1
array[$k]="ObjectId('${myline}')"
set='$set'
in='$in'
memberIds=${array[@]}
mongo 数据库名 --eval "db.member.update({'_id':{'$in':[$memberIds]}}, {'$set':{'isDisabled':true}},
{multi:true})"
return 1
}
filename='./member_a'
path=('y' 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x')
num=0
for pathName in ${path[@]}
do
filePath="${filename}${pathName}"
readFile "$filePath"
let num=($num+$?)
echo "have been finished $expr $num / 25, this file name is $filePath"
done
echo "successful !"
----------------------------------------------------割割割--------------
然后使用命令:
bash 文件名
或者
chmod +x 文件名
./文件名
相关文章推荐
- 编写kettle当中的java脚本获取多个数据库中表的数据
- 取clientdataset detal中的 更新数据, 将detal 转 数据库脚本sql
- 编写存储过程将数据库中表中数据转换sql脚本语言
- 取clientdataset detal中的 更新数据, 将detal 转 数据库脚本sql
- Nodejs脚本实现从mongo数据库迁移数据至mysql数据库
- 行政区划数据数据库的设计(脚本)
- 向数据库中循环插入数据的脚本
- xmlhttp定时无刷新更新数据库数据
- BASH脚本编写教程[ZZ]
- 数据库数据更新,不同表,不同数据库的更新方式
- 如何实现表单一次上传多表数据并更新到数据库
- 编写Powerdesigner脚本,快速生成数据库表
- 行政区划数据数据库的设计(脚本)
- 设计的尝试-数据库・数据的更新
- 自己编写的一个程序:读取XML格式的日志文件,并以一定的数据写入数据库中
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 非常好的BASH脚本编写教程(转)
- 数据库架构更新Sql语句编写规范
- 简便的MS SQL 数据库 表内容 脚本 生成器,支持多级关联(含源代码)(更新:添加对NVARCHAR的特别支持、结果保存)
- SQLSERVER2000下生成数据库对象脚本(不包括数据信息)