2015-07-13 7 views
1

Я пытался создать уникальный индекс в своей коллекции. Я побежалMongodb восстановить утерянные документы

db.responses.ensureIndex({'meta.instanceId': 1}, {unique: true, dropDups: true}) 

поскольку meta.instanceId ключ не присутствовал в документах, MongoDB удалены все документы в коллекции, за исключением одного.

Как восстановить мои удаленные документы?

+1

Еще одна веская причина, по которой ["dropDups"] (http://docs.mongodb.org/manual/release-notes/2.6/#index-build-enhancements) теперь устарела и, надеюсь, скоро исчезнет. Это то, для чего нужны резервные копии и отстающие члены набора реплик. Без них ваши данные исчезли. –

ответ

0

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

use local; 
db.oplog.rs.find({'your query'}); 

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

Если вы не на реплике, я боюсь, что ваши документы исчезли.