MongoDB命令行操作(上)

本文专门介绍MongoDB的命令行操作,分上,下两篇(其实本来是一篇,后来太长,于是拆之)。下篇介绍Record级别的操作,上篇介绍除Record以外的操作,如对database和collection的操作等。

其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅。

这里用来做测试的是远端(10.77.20.xx)的Mongo数据库。

1、登录和退出

mongo命令直接加MongoDB服务器的IP地址(比如:mongo 10.77.20.xx),就可以利用Mongo的默认端口号(27017)登陆Mongo,然后便能够进行简单的命令行操作。

至于退出,直接exit,然后回车就好了。

$ mongo 10.77.20.xx
MongoDB shell version: 2.0.4
connecting to: 10.77.20.xx/test
> show collections
> exit
bye
从以上可以看出,登录后mongo会自动连上一个名为test的数据库。如果这个数据库不存在,那么mongo会自动建立一个名为test的数据库。上面的例子,由于Mongo服务器上没有名为test的db,因此,mongo新建了一个空的名为test的db。其中,没有任何collection。

2、database级操作

2.1 查看服务器上的数据库
> show dbs
admin	(empty)
back_up	(empty)
blogtest	0.203125GB
local	44.056640625GB
test	(empty)

2.2 切换数据库
切换到blogtest数据库(从默认的test数据库)
> use blogtest
switched to db blogtest
mongo中,db代表当前使用的数据库。这样,db就从原来的test,变为现在的blogtest数据库。

2.3 查看当前数据库中的所有集合
> show collections
book
system.indexes
user

2.4 创建数据库
mongo中创建数据库采用的也是use命令,如果use后面跟的数据库名不存在,那么mongo将会新建该数据库。不过,实际上只执行use命令后,mongo是不会新建该数据库的,直到你像该数据库中插入了数据。
> use test2
switched to db test2
> show dbs
admin	(empty)
back_up	(empty)
blogtest	0.203125GB
local	44.056640625GB
test	(empty)
到这里并没有看到刚才新建的test2数据库。
> db.hello.insert({"name":"testdb"})
该操作会在test2数据库中新建一个hello集合,并在其中插入一条记录。
> show dbs
admin	(empty)
back_up	(empty)
blogtest	0.203125GB
local	44.056640625GB
test	(empty)
test2	0.203125GB
> show collections
hello
system.indexes
这样,便可以看到mongo的确创建了test2数据库,其中有一个hello集合。

2.5 删除数据库
> db.dropDatabase()
{ "dropped" : "test2", "ok" : 1 }
> show dbs
admin	(empty)
back_up	(empty)
blogtest	0.203125GB
local	44.056640625GB
test	(empty)

2.6 查看当前数据库
> db
test2
可以看出删除test2数据库之后,当前的db还是指向它,只有当切换数据库之后,test2才会彻底消失。

3、collection级操作

3.1 新建collection
> db.createCollection("Hello")
{ "ok" : 1 }
> show collections
Hello
system.indexes
从上面2.4也可以看出,直接向一个不存在的collection中插入数据也能创建一个collection。
> db.hello2.insert({"name":"lfqy"})
> show collections
Hello
hello2
system.indexes

3.2 删除collection
> db.Hello.drop()
true
返回true说明删除成功,false说明没有删除成功。
> db.hello.drop()
false
不存在名为hello的collection,因此,删除失败。

3.3 重命名collection
将hello2集合重命名为HELLO
> show collections
hello2
system.indexes
> db.hello2.renameCollection("HELLO")
{ "ok" : 1 }
> show collections
HELLO
system.indexes

3.4 查看当前数据库中的所有collection
>show collections

3.5 索引操作
在HELLO集合上,建立对ID字段的索引,1代表升序。
>db.HELLO.ensureIndex({ID:1})
在HELLO集合上,建立对ID字段、Name字段和Gender字段建立索引
>db.HELLO.ensureIndex({ID:1,Name:1,Gender:-1})
查看HELLO集合上的所有索引
>db.HELLO.getIndexes()
删除索引用db.collection.dropIndex(),有一个参数,可以是建立索引时指定的字段,也可以是getIndex看到的索引名称。
>db.HELLO.dropIndex( "IDIdx" )
>db.HELLO.dropIndex({ID:1})

3.6 为集合中的每一条记录添加一个字段
为user集合中的每一条记录添加一个名为ex的字段,并赋值为barrymore
db.user.update({},{$set:{"ex":"barrymore"}},false,true)

3.7 重命名字段
将集合中的所有记录的gender字段的名字修改为sex
db.user.update({},{$rename:{"gender":"sex"}},false,true)

3.8 删除字段
删除集合中所有记录的ex字段
db.user.update({},{"$unset":{"ex":1}},false,true)

上面的操作中用到了一个比较常用的update方法,其参数格式如下:

db.collection.update(criteria, objNew, upsert, multi )
criteria:update的查询条件,类似sql update查询内where后面的
objNew:update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。
upsert : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MongoDB 命令行操作可以通过 mongo shell 进行,下面是一些常见的命令: 1. 连接 MongoDB 数据库: ``` mongo <host>:<port>/<database> -u <username> -p <password> ``` 其中,`<host>` 为 MongoDB 服务器地址,默认为 `localhost`;`<port>` 为 MongoDB 服务器端口,默认为 `27017`;`<database>` 为要连接的数据库名称;`-u` 和 `-p` 分别指定用户名和密码。 2. 显示数据库列表: ``` show dbs ``` 3. 切换数据库: ``` use <database> ``` 4. 显示当前数据库中的集合列表: ``` show collections ``` 5. 插入数据到集合中: ``` db.<collection>.insert({<field1>: <value1>, <field2>: <value2>, ...}) ``` 其中,`<collection>` 为要插入数据的集合名称,`<field>` 和 `<value>` 分别为字段名和对应的值。 6. 查询数据: ``` db.<collection>.find({<field1>: <value1>, <field2>: <value2>, ...}) ``` 其中,`<collection>` 为要查询数据的集合名称,`<field>` 和 `<value>` 分别为字段名和对应的值。 7. 更新数据: ``` db.<collection>.update({<query>}, {<update>}) ``` 其中,`<collection>` 为要更新数据的集合名称,`<query>` 为查询条件,`<update>` 为要更新的数据。 8. 删除数据: ``` db.<collection>.remove({<query>}) ``` 其中,`<collection>` 为要删除数据的集合名称,`<query>` 为查询条件。 以上是 MongoDB 命令行操作的一些常用命令,还有很多其他的命令可以用于 MongoDB 数据库的管理和操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值