Для любого ключа, используемого в операции уменьшения карты, элементы с ключом can могут следовать некоторому естественному порядку.
Предположим, мы хотим найти элементы e0
и e1
такие, что:
- каждый принадлежит одному и тому же ключу,
- они следуют некоторому порядку
e0
<<code>e1 - нет элемента
en
, где e0
<<code>en <<code>e1 относительно нашего заказа. - некоторая связь между
e0
и e1
верно.
(Как) это можно эффективно сделать с помощью карты уменьшить?
Обычный способ решения проблемы с базой данных - просто навести курсор на нашу коллекцию, упорядоченную понаш заказ.Следите за последним увиденным элементом, текущим элементом и проверяйте взаимосвязь.
Проблема с преобразованием карты заключается в том, что в вызове сокращения, который сокращает e0
и e1
, нет ни одного элемента длязнать, существует ли en
, что разрушает ваше предположение, что e0
и e1
являются последовательными.
Есть ли умные способы обойти это?Или каркас mapreduce, который может гарантировать, что набор элементов в вызове Reduce является последовательным?Это можно сделать в mongodb?