我有一个小的bash one liner打击mongo并得到一些统计数据 - 虽然工作正常但我也希望在前缀上得到日期。这是当前有效的代码:
--quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"
现在我想在名称空间之前打印出日期,所以我尝试了一些但却无法让它工作......想法?
d="$(date +'%D %r %Z')"
我累了把它作为一个新的VAR加入......
{ var s = db[n].stats(); **var d="$(date +'%D %r %Z')";** print(**d**'namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"
但在输出上没有这样的运气
EDIT 还尝试在--eval之前添加它,当eval在mongo端工作时,我仍然无法获得打印日期。
d="$(date +'%D %r %Z')" --quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"
答案 0 :(得分:2)
这是您的本地bash格式化日期,因此它只是javascript中的一个字符串:
--quiet --eval "db.getCollectionNames().forEach(function (n) { var s = db[n].stats(); print('d=$(date +'%D %r %Z') namespace=' + s['ns'] +',count=' + s['count']+',avgObjSize=' + s['avgObjSize']+',storageSize=' + s['storageSize']) })"