使用日期蒙戈外壳查询

问题描述 投票:1回答:1

我试图运行在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()和其他东西,但似乎没有任何工作。

linux mongodb bash mongodb-query mongo-shell
1个回答
2
投票

你必须把$DATE2单引号内,如下,以获得所需的结果如下:

 counter=$(mongo --quiet dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":new ISODate("'$DATE'")}}).count()')

我曾尝试与new ISODate但没有它的工作也。有关日期使用点击here更多帮助

© www.soinside.com 2019 - 2024. All rights reserved.