MongoDB基础学习之增删改查

MongoDB查询学习

什么是MongoDB

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

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)

额外知识点

  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, 

upsert, multi) -- 2. 参数 -- query:查询条件,文档,和find中的查询条件写法一致。 -- update:修改内容,文档。 --

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"})

你可能感兴趣的:(mongodb,数据库,nosql)