Коллекции удаления оболочки Mongodb с подстановочной картой

#mongodb #mongo-shell #mongo-collection

#mongodb #mongo-shell #mongo-collection

Вопрос:

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

Поэтому я ищу решение для

а) отбросить все конкретные исключения б) отбросить все data_user_*

Я искал документы, но, похоже, нет параметра, который допускал бы какие-либо из этих операций. Спасибо

Ответ №1:

К сожалению, такой опции нет.

  1. Вы можете получить все доступные коллекции, используя getcollectionname

  2. Затем вы можете проверить наличие сценариев включения / исключения.

  3. Когда условие совпадает, вы можете выполнить drop его.

Комментарии:

1. Спасибо. Я опубликовал решение в качестве ответа

Ответ №2:

Я отказываюсь от поиска, поскольку, похоже, нет «удобного» способа. Итак, я написал короткий скрипт, который полностью удовлетворяет требованиям (и также довольно удобен ^^).

 db.getCollectionNames().forEach(function(collname){
if(collname.includes('data_user')){ 
 print('delete collection: '   collname); 
 db.getCollection(collname).drop()}
});
  

Надеюсь, это поможет кому-то еще.