답변:
이처럼 :
mongo <dbname> --eval "db.dropDatabase()"
명령 행에서 쉘 스크립팅에 대한 자세한 정보는 https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting
mongo <dbname> --eval "printjson(db.dropDatabase())"
mongo <yourDb> --host <yourHost> --port <yourPort> --eval 'db.dropDatabase()'
이를 수행하는 가장 좋은 방법은 mongodb 콘솔에서 수행하는 것입니다.
> use mydb;
> db.dropDatabase();
또는 mongod
데이터 디렉토리에서 데이터 파일을 중지 하고 삭제 한 다음 다시 시작할 수 있습니다.
힌트 : 데이터 파일을 하위 폴더로 이동하고 더 이상 필요하지 않은 경우 삭제할 수 있습니다.
use
.js 파일에서 명령을 사용할 수 없다는 점에 유의하십시오. 구체적인 DB에 연결해야합니다 (
~/.dbshell
파일을 삭제하여 명령 기록을 지울 수 있습니다. (이를 수행하는 더 좋은 방법이있을 수 있습니다-확실하지 않습니다.) SQL과 달리 데이터베이스를 삭제하는 mongo 명령 은 실제로 삭제할 데이터베이스 의 이름을 참조하지 않으므로 삭제합니다. 클라이언트가 현재 연결된 데이터베이스. 명령 기록을 지우면 실수로 dropDatabase
명령을 재생 하고 실수로 두 번째 데이터베이스를 삭제하지 못하게됩니다.
나는 이것을 기억하기 쉽다는 것을 알았다.
mongo //to start the mongodb shell
show dbs //to list existing databases
use <dbname> //the <dbname> is the database you'd like to drop
db //should show <dbname> just to be sure I'm working with the right database
db.dropDatabase() //will delete the database & return { "dropped" : "<dbname>", "ok" : 1 }
heredocs 또는 eval이 필요하지 않으며 , mongo
그 자체가 통역사 역할을 할 수 있습니다.
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
파일을 실행 가능하게 만들고 실행하십시오.
.js
. 그렇지 않으면 db 주소로 해석됩니다.
mongo filename
불필요하게 실행 중입니다-파일에 이미 통역사가 있습니다. 그냥 파일을 실행 가능하게 만들고 실행하십시오./filename
./filename
실제로 실행됩니다 /usr/bin/env mongo filename
. 따라서로 filename
끝나지 않으면 .py
mongo는 인수를 실행할 스크립트로 인식하지 않습니다.
ps
. 출력을 확인하십시오 .
ps
호출 시점 또는 실행 시점에서 커널이 파일을로드하고 실행하기 위해 수행 한 작업이 ps
아니라 호출 시점에 실행중인 내용 만 표시 exec
합니다. 실제로 무슨 일이 일어나고 있는지 알고 싶다면 주위에 래퍼를 작성 /usr/bin/env
하고 shebang 줄에서 실행 파일로 설정 한 다음로 모든 것을 시작해야 strace
합니다.
다음은 mongo 쉘을 사용하는 mongodb에 대한 전체 삭제 작업입니다.
컬렉션에서 특정 문서 를 삭제 하려면db.mycollection.remove( {name:"stack"} )
컬렉션의 모든 문서 를 삭제 하려면db.mycollection.remove()
으로 삭제 모음 : db.mycollection.drop()
데이터베이스 를 삭제하려면 : 먼저 use mydb
명령 으로 해당 데이터베이스로 이동 한 다음
db.dropDatabase()
명령 프롬프트 또는 블래시에서 직접 : mongo mydb --eval "db.dropDatabase()
터미널에서 실행
mongo // To go to shell
show databases // To show all existing databases.
use <DATA_BASE> // To switch to the wanted database.
db.dropDatabase() // To remove the current database.
다른 터미널 창을 열고 다음 명령을 실행하십시오.
mongodb
use mydb
db.dropDatabase()
해당 작업의 출력은 다음과 같아야합니다.
MAC:FOLDER USER$ mongodb
> show databases
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
> use mydb
switched to db mydb
>db.dropDatabase()
{ "dropped" : "mydb", "ok" : 1 }
>
주의하시기 바랍니다 mydb
따라서 데이터베이스를 다시 초기화합니다 그 시간에 모든 입력을 삽입, 사용에 아직도있다.
여러 가지 방법이 있지만 최선의 방법 (가장 효율적이고 쉬운 방법)을 사용하는 것입니다 db.dropDatabase()
명령 프롬프트에서 먼저 다음 명령을 사용하여 mongodb에 연결하십시오.
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
를 사용하여 db에 액세스 <dbname>
합니다.
다음 명령을 실행하여 전체 데이터베이스를 삭제하십시오.
db.dropDatabase()
mongoDB 명령 행에 로그인하십시오. 아래 명령을 입력하십시오. "YOUR_DATABASE_NAME"을 사용하십시오. db.dropDatabase ();
파이썬을 사용하여 MongoDB 데이터베이스를 삭제하십시오.
import argparse
import pymongo
if __name__ == "__main__":
"""
Drop a Database.
"""
parser = argparse.ArgumentParser()
parser.add_argument("--host", default='mongodb://localhost:27017',
help="mongodb URI [default: %(default)s]")
parser.add_argument("--database", default=None,
help="database name: %(default)s]")
args = parser.parse_args()
client = pymongo.MongoClient(host=args.host)
if args.database in client.list_database_names():
client.drop_database(args.database)
print(f"Dropped: '{args.database}'")
else:
print(f"Database '{args.database}' does not exist")