Я пытаюсь запустить этот запрос оболочки Mongo из linux bash.Проблема в том, что я не могу проверить, больше ли дата в Mongo, чем «дата», сохраненная в переменной сценария bash.
Это работает нормально:
counter=$(mongo --quiet dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-02-01T00:00:00.000Z")}}).count()')
И "counter »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 () и другие вещи, но, похоже, ничего не работает.