MongoDB的学习(二)-基本的操作
2016-05-29 13:27
375 查看
【零】创建数据库
MongoDB创建数据库的语法为:use 数据库名称
例如:use school
如果没有这个数据库,则会创建这个数据库,如果已经存在这个数据库,则切换到这个数据库。
但是,这条语句执行完,并没有真正的创建数据库,执行show dbs命令,可以看到是没有显示school这个数据库的。只有往里面插入数据之后,才会真正的存在school这个数据库。
显示所有的数据库语法为:
show dbs
显示当前正在使用的数据库的语法为:
db
例如:
【一】删除数据库
删除数据库的语法为:db.dropDatabase()
这条语句删除的是当前正在使用的数据库。例如:
【二】创建集合
MongoDB中创建集合的语法为:db.createCollection(集合名称,可选项)
可以没有可选项,所以可以只需要指定集合名称就可以使用默认的设置创建集合。
查看某个数据库下的所有的集合语法为:
show collections
例如:
【三】删除集合和清空集合
MongoDB中删除集合的语法为:db.collection.drop()
MongoDB中清空集合的语法为:
db.collection.remove({})
例如:
【四】插入文档
首先,要明确的概念是BSON,因为所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格式,简称BinaryJSON。BSON中的每个element都是key/value对组成。例如:
{ name:"张三", age:26, job:"程序员" }
上面就是一个BSON的示例。插入文档的语法为:
db.集合名.insert(BSON格式的文档)
示例如下:
插入文档你也可以使用 db.集合名.save(BSON格式的文档) 命令。如果不指定 _id 字段 save() 方法类似于 insert()
方法。如果指定 _id 字段,则会更新该 _id 的数据。
【五】更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。update()方法:update()
方法用于更新已存在的文档。语法格式如下:
db.collection.update( <query> <update> { upsert:<boolean>, multi:<boolean>, WriteConcern:<documnet> })
其中的参数说明:
●query : update的查询条件,类似sql update查询内where后面的。
●update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
●upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
●multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
●writeConcern :可选,抛出异常的级别。
例如:
可以看到name为"USTC"的document的name变成了"USTC_中科大"。注意,以上的示例语句只会修改查询到的第一条文档,如果想要所有查询到的文档都修改的话,需要将multi的值设置为true,即加上如下指令:
{multi:true}
save()方法:save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection.save(<document>,
{
writeConcern:<document>
})
●document : 文档数据。
●writeConcern :可选,抛出异常的级别。
例如:
【六】删除文档
MongoDB使用remove()函数来删除文档,语法格式为:db.collection.remove( <query>, { justOne:<bollean>, writeConcern:<document> })
其中的参数说明:
●query :(可选)删除的文档的条件。
●justOne : (可选)如果设为 true 或 1,则只删除一个文档。
●writeConcern :(可选)抛出异常的级别。
注意,默认情况下,是删除所有查询到的文档。
例如:
【七】查询文档
语法格式:db.collection.find()
find() 方法以非结构化的方式来显示所有文档。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
db.collection.find().pretty()
除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。
例如:
AND条件:MongoDB
的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,相当于常规 SQL 的 AND 条件。语法格式如下:
db.collection.find({key1:value1,key2:value3}).pretty()
OR条件:MongoDB
OR 条件语句使用了关键字 $or,语法格式如下:
db.collection.find({ $or:[ {key1:value1},{key2:value2} ] }).pretty()
AND和OR结合的条件:
db.collection.find({
key1:value1,
$or:[ {key2:value2},{key3:value3} ] }).pretty()
相关文章推荐
- mongodb集群快速搭建
- [MongoDB]增删改查
- MongoDB的学习(一)-MongoDB的基本概念
- 玩转mongodb(一):初识mongodb
- Mongodb 研究学习
- 夺命雷公狗mongodb之----mongodb---1---的下载,安装,连接
- mongoDb的基本使用
- windows下mongodb安装与使用
- MongoDB的介绍与部署
- MongoDB快速入门学习笔记4 MongoDB的文档查询操作
- [MongoDB]入门操作
- flask + MongoDB 学习笔记(3):Register & Hashpassword & Login & Logout
- flask + MongoDB 学习笔记 (-1): 个人用记录
- flask + MongoDB 学习笔记: Exceptions, Errors and Solutions
- mongodb
- MongoDB的学习(零)-简介与安装
- mongodb: 关于Mongoose的geoNear方法的使用
- centos6.5 安装mongodb 服务端
- Ubuntu 14.04安装MongoDB
- mongodb 自学笔记