今天对mongodb的简单命令操做学习了一番,作出如下总结。mysql
mongodb是一个非关系型数据库,它不能像关系型数据库那样进行一些增删改查的操做,咱们须要使用一些特殊的命令来操做mongodb。sql
链接mongodb
有一个固定的语法,可使用以下几种方式mongodb
使用用户名和密码链接登录到默认数据库shell
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
复制代码
使用用户 admin
使用密码123456
链接到本地的 MongoDB 服务上数据库
$ mongodb://admin:123456@localhost/
复制代码
使用用户名和密码链接登录到指定数据库json
$ mongodb://admin:123456@localhost/test
复制代码
MongoDB 建立数据库的语法格式以下:后端
$ use DataBase_Name
复制代码
注意:若是指定的数据库不存在,则建立数据库,若是数据库存在,则切换到指定数据库bash
MongoDB 删除数据库的语法格式以下app
$ db.dropDatabase()
复制代码
注意: 在此得的db指代的是切换到某一个数据库下面之后的数据库实例sqlserver
在mongodb数据库中,之前的表(table)的形式在这里是以集合的形式存在的,MongoDB 中使用 createCollection() 方法来建立集合。语法格式以下:
$ db.createCollection(name, options)
复制代码
说明: name: 要建立的集合名称,options: 可选参数, 指定有关内存大小及索引的选项,具体的options的参数,咱们能够参考下面的表格
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)若是为 true,则建立固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最先的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段建立索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。若是 capped 为 true,也须要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
下面,咱们就尝试去建立一个集合
$ db.createCollection("userInfo", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
复制代码
说明:在mongodb当中,建立集合并不是是必定的,当咱们向里面去插入一条数据的时候,这个集合就会本身去建立
$ db.userInfo.insert({"userName" : "yangbiao"})删除集合
复制代码
MongoDB 中使用 drop() 方法来删除集合。具体的语法格式以下:
$ db.collection.drop()
复制代码
例如,若是咱们想把刚刚建立的usrInfo这个集合删除,则可使用以下语法
$ db.userInfo.drop()
复制代码
在此处须要说明一下,之前的关系型数据库(mysql,sqlserver,oracel等数据库),这些都是关系型数据库,存储是以表为单为,表中又以行为单位,而mongodb是一个非关系型数据库,已经没有表与行的概念了
mongodb的集合中,全部的数据都是以json
键值对的形式在进行存储,若是咱们但愿向里面去插入一条信息,则至关因而插入一个json键值对(也能够理解为一个js对象),它的语法格式以下
$ db.userInfo.insert({name:'樊启东',sex:'男'})
复制代码
在上面的语句中插入了一行记录,这一行记录是以json键值对的形式插入进去的
在mongodb当中,更新文档的方式有两种。
如今,咱们来看一下这两种方式的语法与区别
save方法
save() 方法经过传入的文档来替换已有文档。语法格式以下
$ db.collection.save(
<document,
{
writeConcern: <document
}
)
复制代码
如今看一下具体的语法
$ db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "我如今经过mongodb插入数据"
})
复制代码
在此,咱们保存的是一个已经存在的文档
update方法
$ db.collection.update(
<query,
<update,
{
upsert: <boolean,
multi: <boolean
}
)
复制代码
说明一下:
query: update的查询条件,相似sql update查询内where后面的。
update: update的对象和一些更新的操做符(如inc...)等,也能够理解为sql update查询内set后面的
upsert: 可选,这个参数的意思是,若是不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: 可选,mongodb 默认是false,只更新找到的第一条记录,若是这个参数为true,就把按条件查出来多条记录所有更新。
如今,咱们看一下具体的语法格式
$db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 输出信息
db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "我经过update写入的数据",
}
复制代码
经过对上面命令的总结,逐渐对非关系型数据库有了必定的认知和熟悉,但愿可以在接下来的日子里,按部就班,争取早点学会MongoDB,那样就能先后端一把梭哈,为所欲为,还能体验删库跑路的操做啦! (O(∩_∩)O哈哈~,固然是不可能的)