从我的bash提示符中最简单的方法是什么?
从我的bash提示符中最简单的方法是什么?
就像这样:
mongo <dbname> --eval "db.dropDatabase()"
关于如何从命令行脚本化Shell的更多信息,请参考这里:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting
编辑:
在Mongo 6.0中,mongo
已被移除,并用需要单独安装的mongosh
替代。更多信息请参考这里:https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh
在mongosh
中的等效操作为:
mongosh --eval "use <dbname>" --eval "db.dropDatabase()"
mongo <数据库名称> --eval "printjson(db.dropDatabase())"
- Xentattmongo <yourDb> --host <yourHost> --port <yourPort> --eval 'db.dropDatabase()'
- Clemensmongosh <dbname> --eval "printjson(db.dropDatabase())"
。 - Eugene最佳方式是通过 MongoDB 控制台来实现:
> use mydb;
> db.dropDatabase();
此外,您还可以停止mongod
并从数据目录中删除数据文件,然后重新启动。
提示:如果确定不再需要数据文件,您也可以将其移动到子文件夹中,然后将其删除。
~/.dbshell
文件以清除命令历史记录。(也许有更好的方法 - 我不确定。)这样做是因为,与SQL不同,Mongo中要删除数据库的命令 实际上并没有提及要删除的数据库的名称 - 它只是删除了客户端当前连接的数据库。清除命令历史记录将防止您意外重放 dropDatabase
命令并无意中删除第二个数据库。 - Chris Allen Lane我觉得这个很容易记住:
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
结尾,否则它将被解释为数据库地址。 - Vegardmongo filename
,这是不必要的 - 文件已经在顶部有一个解释器。只需使文件可执行并运行它./filename
。 - mikemaccanaps
命令的输出只会显示你在调用 ps
时正在运行的进程,而不会显示导致该进程运行的 exec
调用链或内核加载和执行文件所做的工作。如果你想知道实际发生了什么,应编写一个 /usr/bin/env
的包装器,并将其设置为 shebang 行中的可执行文件,然后使用 strace
启动整个过程。 - kbolino/usr/bin/env mongo filename
,因此文件必须以.py
结尾,这是可以证明是不正确的。 - mikemaccana.js
结尾的需求是可测试的(至少在3.x上)。创建一个名为foo
的脚本,复制并粘贴您答案的确切内容,chmod +x foo
,然后运行./foo
。它将失败,并且失败消息将包括connecting to: mongodb://./foo
。将文件名更改为foo.js
,它就可以工作了。 - kbolino启动 MongoDB
删除数据库的命令是:
1. 首先选择要删除的数据库
use < database name >
2. 接着使用这个...
db.dropDatabase()
mongo localhost/db <<EOF
db.dropDatabase()
EOF
输出结果类似于:
mongo localhost/db <<EOF
db.dropDatabase()
EOF
MongoDB shell version: 2.2.2
connecting to: localhost/db
{ "dropped" : "db", "ok" : 1 }
bye
我喜欢使用heredocs来处理这类问题,以便在需要执行更复杂的一系列命令时能够轻松实现。
以下是使用Mongo Shell进行MongoDB的一些有用的删除操作:
要从集合中删除特定文档: db.mycollection.remove( {name:"stack"} )
要删除集合中的所有文档: db.mycollection.remove()
要删除集合: db.mycollection.drop()
要删除数据库:首先使用use mydb
命令进入该数据库,然后执行其他操作。
db.dropDatabase()
可以直接从命令提示符或终端运行:mongo mydb --eval "db.dropDatabase()
其他方法:
echo "db.dropDatabase()" | mongo <database name>
在终端中执行:
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
仍在使用中,因此在那个时候插入任何输入将重新初始化数据库。