Ну, в MongoDB нет концепции внутренних запросов, поэтому в основном это может быть достигнуто с помощью 2 запросов, но, вероятно, вы уже это знаете и хотите «лучшее» решение. Поскольку вы спросили, возможно ли это, я думаю, что это может быть достигнуто путем агрегирования, однако это может быть сложно.
db.feedback.aggregate([
{$project : {
'outletId' : 1,
'feedback._id' : '$_id',
'feedback.createdOn' : '$createdOn',
'feedback.a' : '$a'
}},
{$group : {
_id : $outletId,
feedbacks : {$addToSet : '$feedback'}
}},
{$match : {
'feedbacks.createdOn' : {
$gte : ISODate('2013-05-03')}
}},
{$unwind : '$feedback'}]);
Вы можете добавить еще один этап $project в конце, чтобы превратить дочерний объект в значения, как это было в документе. Я знаю, что это выглядит некрасиво, но я бы объяснил это поэтапно,
сначала мы проецируем документ, помещая все необходимые поля в дочернее поле, называемое обратной связью,
на втором этапе мы сгруппировали его по идентификатору розетки и поместили все дочерние отзывы в массив с именем Feedbacks (таким образом, для каждого идентификатора розетки мы получаем все отзывы).
на третьем этапе мы используем $match, чтобы отфильтровать, где нет ни одного отзыва в массиве, поле createdOn которого больше установленной даты,
после того, как эти выходные идентификаторы отфильтрованы, мы вызываем unwind, чтобы получить каждый дочерний элемент в массиве отзывов как отдельный документ.
Теперь, если мы говорим о mongoTemplate, да, он принимает все эти параметры для агрегирования, включая вложение дочерних элементов в обратную связь на первом этапе. просто посмотрите пример TypedAggregation
если вы сохраняете поле createdOn в виде строки вместо метки времени или ISODate, даже обычные запросы монго не будут работать, когда вам нужно найти диапазон, как это работает в вашем примере postgres.
Надеюсь, поможет.
person
Rahul Kumar
schedule
25.01.2017
select * from feedback where feedback.createdOn >= '2013-05-03'::date
, учитывая, что вы делаете запрос из одной таблицы,feedback
? - person chridam   schedule 25.01.2017