我试图运行在Linux的bash这个蒙戈外壳查询。问题是,我不能检查,如果在蒙戈的日期比存储在一个bash脚本变量“日期”更大。
这种精细运行:
counter=$(mongo --quiet dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-02-01T00:00:00.000Z")}}).count()')
而“反”变种具有预期值。但我不能为日期时使用一个固定值。所以,我创建了一个VAR存储日期。
DATE2=$(date -d '1 minute ago' "+%Y-%m-%dT%H:%M:%S.%3NZ");
此日期变种具有的预期值。我可以看到,使用简单的printf。
现在,修改后的代码,使用DATE2,而不是一个固定日期,将无法工作,因为查询返回“0”的时候,它应该返回“1”。
counter=$(mongo --quiet dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":"$DATE"}}).count()')
我试图修改上面的代码,使用IsoDate()和其他东西,但似乎没有任何工作。
你必须把$DATE2
单引号内,如下,以获得所需的结果如下:
counter=$(mongo --quiet dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":new ISODate("'$DATE'")}}).count()')
我曾尝试与new ISODate
但没有它的工作也。有关日期使用点击here更多帮助