Как разделить / сэмплировать с курсора в MongoDB? - PullRequest
0 голосов
/ 16 марта 2012

У меня есть база данных с миллионами документов.Я хочу выполнить относительно длительную операцию над каждым документом, а затем обновить его.У меня есть два (связанных) вопроса:

  1. Если мне нужна случайная выборка, скажем, 1000 документов от заданного курсора, как мне это сделать?

  2. Я хочу вычислить и обновить миллион документов.Я работаю в кластере и хочу отправить отдельную работу для каждой партии, скажем, 1000 документов.Какой самый простой способ сделать что-то подобное?

Спасибо!

Uri

1 Ответ

0 голосов
/ 17 марта 2012

Для того, чтобы сделать это, вам нужно передать информацию работнику-менеджеру.Я бы предложил механизм для этого.В этом случае скрипт будет: 1. запрашивать все документы, которые вы хотите обновить, и возвращать их _id.2. перенести все идентификаторы объектов на сервер gearman 3. запустить рабочий процесс gearman на каждой из машин в вашем кластере 4. попросить каждого работника gearman выбрать новый идентификатор объекта из очереди и обработать документ, сохранив его обратноMonogDB.

...