2014-12-16 2 views
1

Я новичок в MongoDB.Запрос на MongoDB Удалить триггеры

Пожалуйста, помогите мне с помощью следующего запроса:

Я использую oplogs для добавления триггеров для работы MongoDB. При выполнении операций вставки/обновления я получаю полную информацию обо всех полях, добавленных/обновленных в коллекции.

Моя проблема:

Когда я удалить операции в MongoDB, то oplog триггеров получили содержит только object_id.

Может кто-нибудь указать на какой-то пример, где я могу получить полную информацию во всех полях - для удаленной строки в триггере.

Благодаря

ответ

2

Вы должны принести этот документ своим ObjectID, который не будет возможно на текущем узле вы хвостохранилища в oplog от потому что к тому времени, когда вы получили операции удаления из oplog, документ ушел. Что я считаю, значит, у вас есть два варианта:

  1. Убедитесь, что все удаления предшествуют операции обновления, который позволяет увидеть поле документа вы требуете до удаления (это сделает удаления дороже, конечно)
  2. Запустите вторичный с slave delay, а затем запросите этот узел для документа, который был удален (либо напрямую, либо с помощью tags).

Для номера 2 проблема имеет задержку, которая достаточно длинная, чтобы гарантировать, что вы можете получить документ и достаточно коротким, чтобы убедиться, что вы получаете обновленную версию документа. Если вы не добавите в документ проверку версий (которая затем будет похожа на вариант 1, скорее всего, вы захотите обновить версию перед удалением), это должно быть по существу оптимистичным и наилучшим решением.

+0

Спасибо за ваш ответ. Я ищу способ конвертировать mongodb DELETE в UPDATE + AUTOMATIC DELETE. Можете ли вы предложить, можно ли достичь такой цели - http://stackoverflow.com/questions/27518304/mongodb-rule-to-delete-a-row-if-a-particular-column-contains-a -специфическая ценность? –

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