Я использую magonodb java driver thru maven репозиторий (как показано ниже в pom.xml) для запроса транзакций между диапазоном дат с агрегатной фреймворком. Драйвер Java генерирует следующий $ спичку, что я пытался проверить на Монго консоли и обнаружил, что она не работает:
db.transactions.aggregate(
{ "$match" :
{
"created_at" : { "$gt" : { "$date" : "2001-04-12T12:00:00.000Z"} , "$lte" : { "$date" : "2020-04-13T12:00:00.000Z"}}
}
}
)
Если удалить $ дату блок и заменить его ISODate функции и строки даты, то она, как представляется, за работой. Я не понял, почему он не работает в Java ($ матч JSON - я принес из затмений, чтобы попытаться в Монго консоли и которые не работают, а также.)
pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.0</version>
</dependency>
делает любой знает, почему $ дата не работает с агрегатом, используя MongoDB v2.4.0?
Попробуйте ответ и дайте мне знать, если он не работает .. и если он не работает, пожалуйста, обеспечить нам информацию о хранилище данных в базе данных. так как я предположил, что 'date' является встроенным файлом в' created_at' в вашем документе. –
Я пробовал, но он не работает. Код, который я предоставил, был создан Java-драйвером MongoDB, поэтому я не вижу «проблема». created_at - это поле даты и содержит формацию даты ISO. Вы можете найти JSON ниже для справки: { "created_at": ISODate ("2013-04-18T10: 42: 22Z"), "payment_token": "f7e595ec-1cdd-4e5d-93c5-eca8e5f9f876" } – Jaymin
Я обновил свой ответ со ссылкой на предоставленный вами JSON. Пожалуйста, дайте нам знать. Поскольку тот же код работает для меня с MongoDB 2.2.3, я надеюсь, что он работает и с вашей версией, без проблем. –