복붙노트

[MONGODB] MongoDB를 데이터베이스에서 삭제 모든

MONGODB

MongoDB를 데이터베이스에서 삭제 모든

나는 MongoDB를에 개발을하고 있어요. 완전히 비 사악한 목적을 위해, 나는 때때로 매일 수집을 삭제하려면 데이터베이스입니다 모든 것을 날려 싶어하고, 또 주위에 거짓말을 할 수있는 무엇이든 처음부터 시작합니다. 내가이 작업을 수행하게됩니다 단 한 줄의 코드가 있습니까? MongoDB를 콘솔 방법 및 MongoDB를 Ruby 드라이버 방법을 모두주는 보너스 포인트.

해결법

  1. ==============================

    1.몽고 쉘의 경우 :

    몽고 쉘의 경우 :

    use [database];
    db.dropDatabase();
    

    루비 코드는 매우 유사하다.

  2. ==============================

    2.또한, 명령 줄에서 :

    또한, 명령 줄에서 :

    mongo DATABASE_NAME --eval "db.dropDatabase();"
    
  3. ==============================

    3.나는 모든 컬렉션을 다시 필요로 할 때, 같은 문제를 가지고 있지만 데이터베이스 사용자를 풀어 싶지 않았다. 데이터베이스에 대한 사용자 설정을 저장하려는 경우, 다음 코드 줄을 사용합니다 :

    나는 모든 컬렉션을 다시 필요로 할 때, 같은 문제를 가지고 있지만 데이터베이스 사용자를 풀어 싶지 않았다. 데이터베이스에 대한 사용자 설정을 저장하려는 경우, 다음 코드 줄을 사용합니다 :

    use <whichever database>
    db.getCollectionNames().forEach(function(c) { if (c.indexOf("system.") == -1) db[c].drop(); })
    

    이 코드는 하나의 데이터베이스에서 모든 모음 이름을 통해 이동로 시작하지 않는 사람들 떨어질 것 "시스템을.".

  4. ==============================

    4.난 당신이 결국 데이터베이스 드롭 후 영광되지 않는 인덱스 제약 문제를 찾을 수 있습니다 테스트 케이스 사이에서 데이터베이스를 닦아 위해 이것을 사용하려는 그러나 경우, 오랫동안 db.dropDatabase () 경로를 따라 갔다. 결과적으로, ensureIndexes, 또는 간단한 경로에 대한 혼란에 하나 필요는 dropDatabase의 alltogether을 피하고 될 수 있습니다 단지 루프 등 각 컬렉션 제거 :

    난 당신이 결국 데이터베이스 드롭 후 영광되지 않는 인덱스 제약 문제를 찾을 수 있습니다 테스트 케이스 사이에서 데이터베이스를 닦아 위해 이것을 사용하려는 그러나 경우, 오랫동안 db.dropDatabase () 경로를 따라 갔다. 결과적으로, ensureIndexes, 또는 간단한 경로에 대한 혼란에 하나 필요는 dropDatabase의 alltogether을 피하고 될 수 있습니다 단지 루프 등 각 컬렉션 제거 :

    db.getCollectionNames().forEach(
      function(collection_name) {
        db[collection_name].remove()
      }
    );
    

    내 경우에는 내가 사용하여 명령 줄에서이 실행되었다 :

    mongo [database] --eval "db.getCollectionNames().forEach(function(n){db[n].remove()});"
    
  5. ==============================

    5.@Robse 및 @DanH (! 명성) 답변을 컴파일, 나는 다음과 같은 솔루션을 완전하게 만족 저를 가지고 :

    @Robse 및 @DanH (! 명성) 답변을 컴파일, 나는 다음과 같은 솔루션을 완전하게 만족 저를 가지고 :

    db.getCollectionNames().forEach( function(collection_name) { 
      if (collection_name.indexOf("system.") == -1) 
           db[collection_name].drop();
      else  
           db.collection_name.remove({}); 
    });
    

    당신이 데이터베이스에 연결이 코드를 실행합니다.

    그것은 사용자 컬렉션을 삭제하고 시스템 컬렉션을 비우는하여 데이터베이스를 정리합니다.

  6. ==============================

    6.듣고 몽고 쉘을 사용하여 MongoDB를위한 몇 가지 사용을 완전 삭제 작업은

    듣고 몽고 쉘을 사용하여 MongoDB를위한 몇 가지 사용을 완전 삭제 작업은

    컬렉션에서 특정 문서를 삭제하려면 : db.mycollection.remove을 ({이름 : "스택"})

    컬렉션에있는 모든 문서를 삭제하려면 : db.mycollection.remove을 ()

    삭제 컬렉션 : db.mycollection.drop ()

    삭제 데이터베이스 : 다음을 사용하여 mydb 명령에 의해 해당 데이터베이스에 처음으로 이동

    db.dropDatabase()
    
  7. ==============================

    7.용도

    용도

    [databaseName]
    db.Drop+databaseName();
    
    drop collection 
    
    use databaseName 
    db.collectionName.drop();
    
  8. ==============================

    8.

    db.getCollectionNames().forEach(c=>db[c].drop())
    
  9. ==============================

    9.당신은 단지 데이터베이스 및 하위 컬렉션이 사용을 삭제하려면 :

    당신은 단지 데이터베이스 및 하위 컬렉션이 사용을 삭제하려면 :

    당신이 몽고에있는 모든 데이터베이스를 삭제하려면 다음이를 사용 :

    db.adminCommand("listDatabases").databases.forEach(function(d)
                 {
                  if(d.name!="admin" && d.name!="local" && d.name!="config")
                    {
                     db.getSiblingDB(d.name).dropDatabase();
                    }
                 }
              );
    
  10. ==============================

    10.(한 번에 모든 데이터베이스를 드롭) : 한 번에 경우에 당신은 모든 것을 삭제해야 할 것

    (한 번에 모든 데이터베이스를 드롭) : 한 번에 경우에 당신은 모든 것을 삭제해야 할 것

    mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
    
  11. ==============================

    11.데이터베이스 말 블로그를 삭제하는 간단한 방법 :

    데이터베이스 말 블로그를 삭제하는 간단한 방법 :

    > use blog
    switched to db blog
    > db.dropDatabase();
    { "dropped" : "blog", "ok" : 1 }
    
  12. ==============================

    12.유성 개발자하십시오.

    유성 개발자하십시오.

    다른 사람들을 위해.

    db.yourCollectionName.drop ();

  13. ==============================

    13.희망이 도움이

    희망이 도움이

  14. ==============================

    14.나는 선호한다

    나는 선호한다

    db.your_collection.remove({})
    

    위에

    db.your_collection.drop()
    

    컬렉션은 특별 징수 인 경우 즉 뒤덮인 수집 또는 고유로 표시 한 필드 모음, 낙하 컬렉션 자체를 취소하고 모음을 다시 만들 때 그것은 평범한 수집 될 것입니다. 다시 속성을 정의해야합니다. 사용 제거 그래서 () 컬렉션을 제거하고 컬렉션의 동작에 영향을주지 않고 문서를 취소합니다.

  15. ==============================

    15.삭제하려면 모든 DB를 사용 :

    삭제하려면 모든 DB를 사용 :

    for i in $(mongo --quiet --host $HOSTNAME --eval "db.getMongo().getDBNames()" | tr "," " ");
    
    do mongo $i --host $HOSTNAME --eval "db.dropDatabase()";
    
    done 
    
  16. ==============================

    16.

    use <dbname>
    db.dropAllUsers()
    db.dropAllRoles()
    db.dropDatabase()
    

    2.6에 도입 된 변경을 설명 MongoDB를 db.dropDatabase () 문서 :

  17. ==============================

    17.. MongoDB를 3.2과 몽고 쉘 출력됩니다 서버에서 데이터베이스 이름 목록에서 새로운, 몽고 () getDBNames ()에서 :

    . MongoDB를 3.2과 몽고 쉘 출력됩니다 서버에서 데이터베이스 이름 목록에서 새로운, 몽고 () getDBNames ()에서 :

    > Mongo().getDBNames()
    [ "local", "test", "test2", "test3" ]
    
    > show dbs
    local  0.000GB
    test   0.000GB
    test2  0.000GB
    test3  0.000GB
    

    배열을 통해 foreach는 () 루프는 dropDatabase ()가 나열된 모든 데이터베이스를 드롭 호출 할 수 있습니다. 선택적으로 당신은 당신이 드롭 싶지 않아 몇 가지 중요한 데이터베이스를 건너 뛰도록 선택할 수 있습니다. 예를 들면 :

    Mongo().getDBNames().forEach(function(x) {
      // Loop through all database names
      if (['admin', 'config', 'local'].indexOf(x) < 0) {
        // Drop if database is not admin, config, or local
        Mongo().getDB(x).dropDatabase();
      }
    })
    

    예 실행 :

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    test    0.000GB
    test2   0.000GB
    test3   0.000GB
    
    > Mongo().getDBNames().forEach(function(x) {
    ...   if (['admin', 'config', 'local'].indexOf(x) < 0) {
    ...     Mongo().getDB(x).dropDatabase();
    ...   }
    ... })
    
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    
  18. from https://stackoverflow.com/questions/3366397/delete-everything-in-a-mongodb-database by cc-by-sa and MIT license