2012-05-07 4 views
0

В соответствии с документацией Mongo MR (http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ShardedEnvironments) вывод задания MR на оштукатуренных данных МОЖЕТ записать результат в другую подсвеченную коллекцию, однако только _ID можно использовать в качестве ключа осколка.Могу ли Mongo MR написать результат в другую собранную коллекцию?

Есть ли способ испустить или установить _ID, который будет назначен для результирующих документов? Скажем, использовать UserID или CustomerNo, который сам используется как ключ осколка?

ответ

0

_id в документах, созданных Map-Reduce - это тот же ключ, который вы используете в emit(...) во время фазы карты. Он может быть любого типа, включая (суб) документ, но он всегда будет присутствовать как поле _id в заключительных документах.

Если у вас есть целевая (оштукатуренная) коллекция с использованием нестандартного значения, отличного от ObjectId, как значения для _id, вы можете использовать уменьшенную карту-сокращение с выходом в эту коллекцию.

Также существуют некоторые ограничения для уменьшения размера карты, в частности, что уменьшение карты не приведет к разрыву или миграции и что параметр limit не поддерживается.

Смежные вопросы