У меня есть коллекция со следующим документом:
{
"observation": {
"temporalExtent": [
{
"dateBeg": ISODate("2002-07-28T20:47:00.000+02:00"),
"dateEnd": ISODate("2003-09-13T16:17:00.000+02:00")
}
]
}
}
Я пытаюсь выполнить следующую операцию агрегирования, которая должна вернуть документ выше, но я не могу понять, что не так и почему документне найден.
db.collection.aggregate({
"$match": {
"observation.temporalExtent": {
"$elemMatch": {
"dateBeg": {
"$gte": {
"$dateFromString": {
"dateString": "1892-01-05T23:50:39.000Z"
}
}
}
}
}
}
})
Есть идеи?Вы можете поиграть с этой конфигурацией здесь
Редактировать
Операция агрегирования $dateFromString
генерируется Spring-data-mongodb DateOperators.DateFromString fromString (Значение объекта) метод.Я хотел бы знать, почему я неправильно использую этот оператор или другой способ генерации той же операции с конструктором $date
или ISODate
, как упомянуто @arsendavtyan и @ mani.
Criteria.where("dateBeg")
.lte(DateOperators.DateFromString.fromString(tmpExtent.getString("fromDate")))
.lte(DateOperators.DateFromString.fromString(tmpExtent.getString("toDate")))