How to use variables in a mongodump query
You can do it like this:

start="new Date(1000*$(date -d `date -d yesterday +%F` +%s))"
end="new Date(1000*$(( $(date -d `date +%F` +%s) - 1 )))"
query="db.collection.find({created_at: {\$gte: $start, \$lte: $end}});"

echo $query
db.collection.find({created_at: {$gte: new Date(1000*1575586800), $lte: new Date(1000*1575673199)}});


Putting all in one line is a bit ugly but possible:

mongodump --db dbname --collection cname --query 'db.collection.find({created_at: {$gte: '"new Date(1000*$(date -d `date -d yesterday +%F` +%s))"', $lte: '"new Date(1000*$(( $(date -d `date +%F` +%s) - 1 )))"'}})' --out collection_01NOV2019


Note, in crontab you have to write +\% rather than +%. Perhaps it will be more clear when you write a 3-line shell script and execute this by cron.

Simplified alternative:

start="new Date('`date -d yesterday +%FT00:00:00`')"
end="new Date('`date -d yesterday +%FT23:59:59`')"
query="db.collection.find({created_at: {\$gte: $start, \$lte: $end}});"

echo $query
db.collection.find({created_at: {$gte: new Date('2019-12-05T00:00:00'), $lte: new Date('2019-12-05T23:59:59')}});