2016-06-10 4 views
0

Я хочу удалить все коллекции из моего db, которые долгое время не используются. Есть ли какие-либо причины, по которым я могу проверить, когда последняя коллекция использовалась в последний раз?Удалить устаревшую коллекцию в mongodb

+0

У вас есть какое-либо поле в ваших записях, которое обновляется с каждым обновлением и вставкой? – Shrabanee

ответ

1

Это зависит от того, что вы подразумеваете под «последним использованным». Если вы имеете в виду последний раз, когда документ был вставлен в коллекцию, вы можете сделать это, преобразов ObjectId последнего вставленного документа в дату. Следующий запрос должен возвращать дату последнего документ был вставлен:

db.<collection_name>.findOne({},{_id:1})._id.getTimestamp() 

запрос findOne будет возвращать документы в естественном порядке, поэтому при вводе какие-либо критерии запроса («{}»), то он вернет самое последнее вставленными документ. Затем вы можете получить поле _id и вызвать функцию getTimestamp()

Я не уверен, есть ли способ достоверно рассказать, когда последний запрос был запрошен. Если вы используете свою базу данных с включенным профилированием, то могут быть записи в коллекции db.system.profile или в oplog.

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