У меня есть документы, которые имеют поле Version, URL и DateAdded (среди прочих, но это релевантные).запрос MongoDB для разрыва связей и удаления дубликатов
Я хотел бы, чтобы найти все документы, где версия «5,5» и DateAdded меньше или равен 1 января 2013 г. Это довольно просто, но я также хочу следующее поведение:
Если два или более документа имеют один и тот же URL-адрес, а только возвращают тот, у которого есть последний DateAdded (при условии, что он меньше или равен 1 января 2013 года). Было бы здорово, если бы все это могло быть выражено в одном запросе (но моя главная проблема - это производительность).
Я делаю этот последний бит фильтрации в моем клиентском коде (за пределами MongoDB), но это заканчивается неэффективным, не говоря уже о неэлегантном.
Я также пробовал использовать функцию MapReduce от Mongo для достижения того же, но это очень медленно, поскольку, похоже, она копирует большую часть моей коллекции в другую коллекцию.
Есть ли эффективное решение?
Посмотрите на 'aggregate' вместо' mapReduce'. – JohnnyHK