MongoDB基础学习之增删改查

MongoDB查询学习

什么是MongoDB

MongoDB是一个基于分布式文件存储系统的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案sql

MongoDB数据之Document和BSON

  1. MongoDB中保存的数据格式为BSON
-- key: value

{

name: "Tian",

age: 22,

status: "active"

}
  1. MongoDB中数据的基本单元称为文档(Document),它是MongoDB的核心概念,由多个键及其关联的值有序的放置在一块儿组成,数据库中它对应于关系型数据库的行。
  2. BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON。
  3. BSON和JSON同样,支持内嵌的文档对象和数组对象,可是BSON有JSON没有的一些数据类型,如Date和BinData类型。
  4. 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)

额外知识点json

  1. document是文档数据,collection是存放文档数据的集合
  2. 在执行插入文档时,若是collection存在,document会添加到collection目录下,若是collection不存在,数据库会先建立collection,而后再保存插入document

MongoDB之查询文档(查)

  1. 在MongoDB中,查询指向特定的文档集合(collection)。
  2. 查询文档可设定查询条件,返回符合条件的文档数据。
  3. 查询也能够包含一个投影,指定返回的字段
-- 查询过程当中指定了一个查询条件和一个排序修饰符

db.users.find({age: {$gt: 18}}).sort({age: 1})

额外知识点数组

  1. 在关系型数据库中,投影指的是对列的筛选,相似的,在MongoDB中,投影指的是对出如今结果集中的对象属性的筛选
  2. 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之修改文档(改)

  1. 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})
  1. 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之删除文档(删)

  1. remove命令能够删除文档,删除文档能够清理掉不须要的数据,释放存储空间,提高检索效率,可是错误的删除会是一场灾难,所以执行数据删除操做时须要很是的谨慎!
-- 1. 语法

db.collection.remove(query, justOne)

-- 2. 参数

-- query:BSON类型,用于查询需被删除的文档

-- justOne:布尔类型,true:只删除一个文档,false:默认值,删除全部符合条件的文档

-- 例1:删除users集合中名字为Jenny的文档

db.users.remove({"name": "Jenny"})