从脚本 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 (将#修改为@)