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()'