Я использую java-драйвер mongodb через репозиторий maven (как показано ниже в pom.xml) для запроса транзакций между диапазоном дат с агрегированным фреймворком. Драйвер java генерирует следующее совпадение $, которое я пытался проверить на консоли mongo и обнаружил, что он не работает:
db.transactions.aggregate(
{ "$match" :
{
"created_at" : { "$gt" : { "$date" : "2001-04-12T12:00:00.000Z"} , "$lte" : { "$date" : "2020-04-13T12:00:00.000Z"}}
}
}
)
Если я удалю блок $ date и заменю его функцией ISOdate и строкой даты, похоже, он работает. Мне не удалось понять, почему он не работает в java ($ match JSON - я получил из eclipse, чтобы попробовать в консоли mongo, и это тоже не работает.)
pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.0</version>
</dependency>
Кто-нибудь знает, почему $ date не работает с агрегатом с использованием MongoDB v2.4.0?
date
- это встроенное полеcreated_at
в вашем документе. - person Amol M Kulkarni   schedule 18.04.2013