一、使用数据库
显示所有数据库命令
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> show dbs
local 0.078GB
test 0.078GB
>
显示当前数据库对象
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> db
test
>
切换数据库
> use local
switched to db local
> db
local
>
连接数据库
从上面我们已经知道连接数据库使用“mongo”命令,默认连接到test数据库,当然这个命令还可以带参数,如
$ ./mongo localhost:27017
表示连接到本地数据库服务,localhost表示主机名,这里也是默认连接到test数据库
>db
test
>
注意后面的端口号必须加上否则,连接到localhost数据库,即使localhost这个数据库为空
$ ./mongo localhost
MongoDB shell version: 3.0.6
connecting to: localhost
> db
localhost
>show dbs
local 0.078G
test 0.078G
>
如果在其他编程语言中连接MongoDB服务时,需要提供连接字符串,通用写法为
mongodb://username:password@hostname/dbname
更多连接实例(此部分参考MongoDB菜鸟教程)
连接本地数据库服务器,端口是默认的。
mongodb://localhost
使用用户名fred,密码foobar登录localhost的admin数据库。
mongodb://fred:foobar@localhost
使用用户名fred,密码foobar登录localhost的baz数据库。
mongodb://fred:foobar@localhost/baz
连接 replica pair, 服务器1为example1.com服务器2为example2。
mongodb://example1.com:27017,example2.com:27017
连接 replica set 三台服务器 (端口 27017, 27018, 和27019):
mongodb://localhost,localhost:27018,localhost:27019
连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器。
mongodb://host1,host2,host3/?slaveOk=true
直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器。
mongodb://host1,host2,host3/?connect=direct;slaveOk=true
当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式。
安全模式连接到localhost:
mongodb://localhost/?safe=true
以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000
参数选项说明
标准格式:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
标准的连接格式包含了多个选项(options),如下所示:
选项 | 描述 |
---|---|
replicaSet=name | 验证replica set的名称。 Impliesconnect=replicaSet. |
slaveOk=true|false |
|
safe=true|false |
false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。 |
w=n | 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。 |
wtimeoutMS=ms | 驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true. |
fsync=true|false |
|
journal=true|false | 如果设置为 true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true |
connectTimeoutMS=ms | 可以打开连接的时间。 |
socketTimeoutMS=ms | 发送和接受sockets的时间。 |
二、创建数据库
语法格式
use databasename
如果数据库不存在,则创建数据库,否则切换到指定数据库。注意新创建的数据库为空,如不向其中插入记录,则不会出现在show dbs语句的结果中
三、删除数据库
语法格式
db.dropDatabase()
删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。
注意删除了数据库后,db所引用的数据库仍然为被删除的数据库,只是这个数据库此时为空