Я написал сценарий оболочки, чтобы создать дамп данных записей, обновленный вчера, используя команду mongoexport.Сценарий оболочки Mongoexport - Ошибка в запросе
yesterday=$(date -d 'yesterday 00:00:00' '+%s'000)
today=$(date -d 'today 00:00:00' '+%s'000)
query="'{\"updated_at\":{\$gte:new Date(${yesterday}),\$lte:new Date(${today})}}'"
echo ${query}
mongoexport -h $HOST -d $DOC -c $COL_NAME -u $USER -p $PWD -q ${query} -o $fileName
После добавления запроса, когда я запускаю скрипт, я получаю ниже ошибки в консоли
'{"updated_at":{$gte:new Date(1484287200000),$lte:new Date(1484373600000)}}'
too many positional arguments: [Date(1484287200000),$lte:new Date(1484373600000)}}']
try 'mongoexport --help' for more information
Когда я запускаю этот запрос в командной строке она работает правильно. Может кто-нибудь PLS, дайте мне знать, почему эта ошибка при запуске в сценарии оболочки?
Это работает в командной строке.
$mongoexport -h <<HOST>> -d <<DOC>> -c <<COL> -u <<UN>> -p <<PWD>> -q '{"updated_at":{"$gte":new Date(1484287200000),"$lte":new Date(1484373600000)}}'
Спасибо за ответ. Когда я попытался в сценарии оболочки с двойными кавычками, я попал ниже ошибки. ''{" updated_at ": {$ gte: new Дата (1484287200000), $ lte: new Дата (1484373600000)}}' 2017-01-14T18: 02: 22.557-0600 \t Параметры проверки правильности: запрос '[39 123 34 117 112 100 97 116 101 100 95 97 116 34 58 123 36 103 116 101 58 110 101 119 32 68 97 116 101 40 49 52 56 52 50 56 55 50 48 48 48 48 48 41 44 36 108 116 101 58 110 101 119 32 68 97 116 101 40 49 52 56 52 51 55 51 54 48 48 48 48 48 41 125 125 39] 'недействителен JSON: json: не может развязать строку в значение Go типа map [string] interface {} ' – user1637487
@ user1637487 Я не знаю монго, но считаю, что окружающие одинарные кавычки в вашем определении 'query' должны быть удалены. Сохраняйте только двойные кавычки: 'query =" {...} "' – xhienne