mongoexport太多的选择错误而产生的changelog

问题描述:

试图用mongoexport导出OPLOG的CSV ......试过到目前为止我已阅读所有报价的组合...mongoexport太多的选择错误而产生的changelog

../mongodb/bin/mongoexport --csv -d local -c oplog.rs -o export.csv -f {op,ns,o._id} -q "{ts: { \"$gte\": Timestamp(1355100998000,1)} , op :{ \"$nin\" : [\"c\",\"n\"]}" 

,但我不断收到

ERROR: too many positional options 
..... 

什么可能是错的?

经过大量的拧绕我已经试过这

q="{op: { \$nin: [\"c\",\"n\"]}}" 
mongoexport --csv -d local -c oplog.rs -o export.csv -f {op,ns,o._id} -q "$q" 

,这就像一个魅力。 但仍然这

q="{ts: { \$gte: Timestamp(1355100998000,1)}, op: { \$nin: [\"c\",\"n\"]}}" 
../mongodb/bin/mongoexport --csv --db local --collection oplog.rs -o changelog.csv --fields op,ns -q "$q" 

不起作用。输出

Assertion: 10340:Failure parsing JSON string near: ts: { $gte 

感觉Timestamp()有问题吗?

所以最后这是应该怎么做......或者我是如何做到的。这是相当快的尝试它在30000记录需要最多2秒。 发生的所有这就是是我用蒙戈与--eval选项

q="db.oplog.rs.find({ ts : { \$gte : Timestamp($timestamp, 1)}, op : { \$nin : [\"c\",\"n\"] } }, { op : 1 , ns : 1 , \"o._id\" : 1 , h : 1 }).forEach(function(x){db.changelog.save(x);})" 

../mongodb/bin/mongo localhost:27017/local --eval "$q" 

,然后存储在新的集合的结果导出为.csv使用mongoexport

../mongodb/bin/mongoexport --csv --db local --collection changelog -o changelog.csv --fields "o._id","op","ns","h" 

和removinf临时数据库以支持未来更新日志

../mongodb/bin/mongo localhost:27017/local --eval 'db.changelog.remove()'