MongoDB查询学习
什么是MongoDB
MongoDB是一个基于分布式文件存储系统的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案
MongoDB数据之Document和BSON
- MongoDB中保存的数据格式为BSON
-- key: value
{
name: "Tian",
age: 22,
status: "active"
}
- MongoDB中数据的基本单元称为文档(Document),它是MongoDB的核心概念,由多个键及其关联的值有序的放置在一起组成,数据库中它对应于关系型数据库的行。
- BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON。
- BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
- BSON的优点是灵活性高,但它的缺点是空间利用率不是很理想,BSON有三个特点:轻量性、可遍历性、高效性。
MongoDB之插入文档(增)
语法:db.collection.insert(document)
-- 1. 使用insert语句插入单个文档
-- user
{
name: "Wang",
age: 22,
status: "active"
}
db.users.insert(user)
-- 2. 使用insert语句插入多个文档
-- people
[{
name: "Li",
age: 22,
status: "active"
},{
name: "Cai",
age: 22,
status: "active"
}]
db.users.insert(people)
额外知识点
- document是文档数据,collection是存放文档数据的集合
- 在执行插入文档时,如果collection存在,document会添加到collection目录下,如果collection不存在,数据库会先创建collection,然后再保存插入document
MongoDB之查询文档(查)
- 在MongoDB中,查询指向特定的文档集合(collection)。
- 查询文档可设定查询条件,返回符合条件的文档数据。
- 查询也可以包含一个投影,指定返回的字段
-- 查询过程中指定了一个查询条件和一个排序修饰符
db.users.find({age: {$gt: 18}}).sort({age: 1})
额外知识点
- 在关系型数据库中,投影指的是对列的筛选,类似的,在MongoDB中,投影指的是对出现在结果集中的对象属性的筛选
- MongoDB中查询检索数据时使用find命令,使用方法如下
-- 1. 语法
db.collection.find(criteria,projection)
-- 2. 参数
-- criteria:查询条件,文档类型,可选。
-- projection:返回的子弹,文档类型,可选。若需要返回所有字段,则忽略此参数。
-- 例1:找出年龄大于18岁的人的姓名
db.users.find({age: {$gt: 18}}, {name: 1})
-- 例2:查询当前集合所有文档数据
db.users.find()
MongoDB之修改文档(改)
- update命令可以更新指定文档的特定字段值,也可以替换掉整个文档,如果更新操作会增加文档大小,MongoDB将重新分配空间并重新定位。
-- 1. 语法
db.collection.update(query, update, <p>upsert, multi)
-- 2. 参数
-- query:查询条件,文档,和find中的查询条件写法一致。
-- update:修改内容,文档。
-- <p>upsert(可选):如果值为true,那么集合中没有匹配的文档时,创建文档。默认false。
-- multi(可选):如果值为true,那么将更新全部符合条件的文档,否则只更新查询到的第一个文档,默认false。
-- 例1:将users集合中的所有年龄大于18岁的文档的name字段改为test
db.users.update({age: {$gt: 18}}, {$set: {"name": "test"}}, {multi: true})
- save命令可以更新或插入一个新文档,与update命令不同的是,save命令只能对一个文档进行操作
-- 1. 语法
db.collection.save(document)
-- 2. 参数
-- document:新的文档
-- 例1:在users集合中保存文档{name: "Jenny", age: 22, sex: "girl"}
db.users.update({"name": "Jenny", "age": 22, "sex": "girl"})
MongoDB之删除文档(删)
- remove命令可以删除文档,删除文档可以清理掉不需要的数据,释放存储空间,提升检索效率,但是错误的删除会是一场灾难,因此执行数据删除操作时需要非常的谨慎!
-- 1. 语法
db.collection.remove(query, justOne)
-- 2. 参数
-- query:BSON类型,用于查询需被删除的文档
-- justOne:布尔类型,true:只删除一个文档,false:默认值,删除所有符合条件的文档
-- 例1:删除users集合中名字为Jenny的文档
db.users.remove({"name": "Jenny"})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。