Use mongoexport with a --query for ISODate Use mongoexport with a --query for ISODate mongodb mongodb

Use mongoexport with a --query for ISODate


You need to use "extended json" in queries with mongoexport. So the way to specify "dates" is with $date instead. And the --query is just the "query string" in JSON format. Not the whole command entered into the shell:

mongoexport --db ium --collection events \  --query '{     "created_at": {       "$gte": { "$date": "2016-03-01T00:00:00.001Z" },      "$lte": { "$date": "2016-03-29T23:59:59.000Z" }    },    "name": "UPDATE_SUCCESS"  }' \  --out guile1_test.json

Note also the corrected date string in the $lte argument and of course the "quoting" use of '' around the body of the JSON argument and "" around the internal expressions and values. It s important that these types of quotes are different, as well as "shell arguments" should have their "outer" quotes as '', otherwise the "shell" tries to evaluate the expression contained.


Another working solution is by using the new Date() constructor as described in the MongoDB manual. This will result in a smaller query body footprint like so:

    mongoexport --db ium --collection events \  --query '{     "created_at": {       "$gte": new Date("2016-03-01T00:00:00.001Z"),      "$lte": new Date("2016-03-29T23:59:59.000Z")    },    "name": "UPDATE_SUCCESS"  }' \  --out guile1_test.json

This approach worked for me out-of-the-box while all other alternatives failed. There is a relative article describing this approach here.


Best way to achieve it as following. Because new Date and IOSDate would be invalid literal for this command.

For remote host

mongoexport --host {{host}} --username {{username}} --password {{passord}} --authenticationDatabase admin --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"}  } }'  --type json --out {{path of directory where you would want to export file.}}

For local host

 mongoexport  --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"}  } }'  --type json --out {{path of directory where you would want to export file.}}