【发布时间】:2015-01-08 14:47:48
【问题描述】:
我正在尝试执行一个 bash shell,它使用动态创建的命令调用 mongo shell。 bash shell 如下所示:
#!/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
请注意,集合中的 processestime 字段是格式化为 ISODate 对象的字符串值。
当作为 bash shell 执行时,我收到“Unexpected token ILLEGAL”错误。如果我执行回显到屏幕的命令,我会得到想要的结果。
我的问题是,有没有办法将 shell 定义的变量传递到 mongo shell 中,如果有什么我需要更改才能做到这一点?
【问题讨论】: