Почему mongoexport не может анализировать этот JSON, когда mongo может?
Это запрос:
mongoexport --host our.dbhost.com --port 27017 --username peter -p clark --collection sent_mails --db dbname --query '{trigger_id:ObjectId( "50c62e97b9fe6a000200000c"), updated_at: {$lt : ISODate("2013-02-28"), $gte : ISODate("2013-02-01") }}'
когда я запускаю эту команду, я получаю:
assertion: 10340 Failure parsing JSON string near: , updated_
есть идеи? (Я хочу, чтобы все записи, которые соответствуют trigger_id, были обновлены в феврале.)
1 ответ
Как объяснялось в этом выпуске: Mongoexport с использованием ограничений $gt и $lt для диапазона дат, вы должны использовать метки времени Unix для запросов даты в mongoexport
Метки времени должны быть в миллисекундах
Вызов этого в оболочке bash будет выглядеть так:
let "date_from=`date --utc --date "2013-02-01" +%s` * 1000"
let "date_to=`date --utc --date "2013-03-01" +%s` * 1000"
mongoexport -d test -c xx --query "{updated_at:{\$gte:new Date($date_from),\$lt:new Date($date_to)}}"> xx.json
> connected to: 127.0.0.1
> exported 1 records
Коллекция xx содержит:
> db.xx.find().pretty()
{
"_id" : ObjectId("5158f670c2293fc7aadd811e"),
"trigger_id" : ObjectId("50c62e97b9fe6a000200000c"),
"updated_at" : ISODate("2013-02-11T00:00:00Z")
}