Я пытаюсь выполнить оболочку bash, которая вызывает оболочку mongo с помощью команды, созданной динамически. Баш оболочка выглядит следующим образом:Передача переменных оболочки bash в команду оболочки mongo
#!/bin/bash
TODAY=`date '+%Y-%m-%d'`
CMD=" 'printjson(db.collection.aggregate([{$match:{processedtime:{$gte:\"$TODAY"}}},{$project:{_id:$field",count:{$sum:1}}}]))'"
echo "CMD: $CMD"
mongo host/mdb --eval $CMD
Обратите внимание на поле processedtime в коллекции значение жала отформатирован как ISODate объекта.
При выполнении в качестве оболочки bash я получаю сообщение об ошибке «Неожиданный токен ILLEGAL». Если я выполню команду, эхом отозванную на экране, я получаю желаемые результаты.
Мой вопрос: есть ли способ передать в оболочку определенные переменные в оболочку mongo и, если есть, что мне нужно изменить, чтобы сделать это?