微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从脚本 mongo 中获取的值

如何解决从脚本 mongo 中获取的值

请帮助我们如何实现这一目标:

/home/bin/mongoexport --host pr01.prod.com:3046 --authenticationDatabase admin -u m7@pub.com -p 'orc1*&'
 --readPreference secPref --db action --collection pubaction --type=csv -f "_id" --sort "{_id:-1}"
 --noHeaderLine --limit 1 -o /opt/app/maxvalue_id_rt24.csv
 
2021-04-01T00:48:22.721-0400    exported 1 record
$ cat /opt/app/maxvalue_id_rt24.csv
ObjectId(60659ac)


  $ cat lastvalue_id_rt24.csv
ObjectId(60654fe)

--- 我们第一次在lastvalue_id_rt24.csv文件中手动放置lastvalue运行自动化脚本

OUR QUERY ---- db.getCollection('pubaction').find({"_id":{"$gt":ObjectId("60654fe"),"$lte":ObjectId("60659ac")}})

我这里的要求是将 maxvalue 和 lastvalue 中 () 内的值剪切到下一个脚本并将值 x=60654fe 和 y =60659ac

$/home/bin/mongoexport --host pr01.prod.com:3046 
--authenticationDatabase admin -u m7@pub.com -p 'orc1*&'
 --readPreference secPref --db action 
--collection pubaction --type=csv -f "_id,eventId,eventName,timeStamp,recordPublishindicator" 
 -q '{"_id":{"$gt":'$minvalue',"$lte":'$maxvalue'}}'  -o /opt/app/act_id_rt24.csv

So inside script -q '{"_id":{"$gt":ObjectId("x"),"$lte":ObjectId("y")}}'  --- we  will need to hardcode ObjectId And pass the x and y values

ex: from above output

 -q '{"_id":{"$gt":ObjectId("60654fe"),"$lte":ObjectId("60659ac")}}'
 

在接下来的脚本中,我们必须更改逻辑,将旧 ID 值放在 MINVALUE 中,将新 ID 值放在 MAXVALUE 中

/home/bin/mongoexport --host pr01.prod.com:3046 
--authenticationDatabase admin -u m7@pub.com -p 'orc1*&'
 --readPreference secPref --db action 
 --collection pubaction --type=csv -f "_id" --sort "{_id:-1}"
 --noHeaderLine --limit 1 -o /opt/app/maxvalue_id_rt24.csv
 if [ $? -eq 0 ]
then 
maxvalue=`cat maxvalue_id_rt24.csv`
echo $maxvalue
minvalue=`cat lastvalue_id_rt24.csv`

以及在 sqlldr 之后:

sqlldr report/fru1p  control=act_id.ctl ERRORS=500 log=x`.log direct=Y

we  MUST change  LOGIC below   to put the old ID value in MINVALUE and NEW ID VALUE IN MAXVALUE

cat maxvalue_id_rt24.csv > lastvalue_id_rt24.csv 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。