MongoDB

1、介绍

MongoDB是一个文件型数据库,介于关系型数据库和非关系型数据库之间,他和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,没有主外键约束,没有存储的数据类型约束。
Collection也就是关系型数据库中"表"的概念,Documents就是"数据条目",Field就是"字段"
版本:3.4.15
注意配置环境变量,启动服务端:mongod 启动客户端:mongo

启动之前一定要注意在安装的盘符下创建 data/db文件结构

2、MongoDB的增删改查

注意:MongoDB中如果你使用了不存在的对象,那么就等于你在创建这个对象

数据库与Collection的创建:
创建数据库并使用该数据库:use databaseName
显示当前使用的数据库:db
创建并使用Collection: db.tableName

插入数据:

insertOne:db.Oldboy.insertOne({"name":"DragonFire","age":20})
insertMany:db.Oldboy.insertMany([{"name":"DragonFire","age":20},{"name":"alex","age":30}])

查询数据:

db.Oldboy.find({name:"WuSir2b"})
db.Oldboy.findOne({age:19}) : 条件查找一条age等于19的数据,如有多条数据则返回更靠前的数据

修改数据

db.Oldboy.updateOne({"age":19},{$set:{"name":"WSSB"}}) # $set 是update时的关键字,没有name属性及创建name属性

db.Oldboy.updateMany({"age":19},{$set:{"name":"pig_qi"}})

删除数据:

db.Oldboy.remove({"name":"DragonFire"}) : 条件删除name等于"DragonFire"的所有Document

3、MongoDB数据类型

Object ID:Documents 自生成的 _id, 这个类型是不可以被JSON序列化的
String: 字符串,必须是utf-8
Boolean:布尔值,true 或者false,小写
Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
Double:浮点数 (没有float类型,所有小数都是Double)
Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
Null:空数据类型 , 一个特殊的概念,None Null
Timestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

4、$修改器

查询中常见的 等于 大于 小于 大于等于 小于等于
db.Oldboy.findOne({"score":{"$gt:80"}})
db.Oldboy.findOne({"score":{"$lt:80"}})
db.Oldboy.findOne({"score":{"$gte:80"}})
db.Oldboy.findOne({"score":{"$lte:80"}})

update修改器: $inc $set $unset $push $pull

$inc:变量加等于一个值

db.Oldboy.update({"score":59},{$inc:{"score":1}}) #"score"的原有数值上面 +1
db.Oldboy.update({"score":60},{$inc:{"score":-40}})

$set:用来修改一个字段的值或者是创建一个新的字段

db.Oldboy.update({"score":100},{$set:{"english_name":"LuffyCity"}}) #:把 "score" 为 100 分 的 "english_name" 赋值为 "LuffyCity"

$unset:用来删除一个字段

db.Oldboy.update({"score":100},{$unset:{"english_name":1}})

$push:向array中新增数据类型

db.Oldboy.updateMany({},{$set:{"test_list":[1,2,3,4,5]}})

注意:查询条件为空,也要写上{},为所有满足条件的 Document 添加 "test_list"

db.Oldboy.updateMany
({"score":100},{$push:{"test_list":6}})

将 "score" 为 100 的Document 中"test_list" 添加一个 6

$pull:对array中的某个元素进行删除

db.Oldboy.updateMany({"score":100},{$pull:{"test_list":6}})

$pop:指定删除Array中的第一个 或 最后一个 元素

db.Oldboy.updateMany({"score":100},{$pop:{"test_list":1}})

{$pop:{"test_list" : -1}} -1 代表最前面, 1 代表最后边

$和关键字一起使用为修改器,单独使用代指筛选原数的下标

db.Oldboy.updateMany({"score":100,"test_list":2},{$set:{"test_list.$":9}})

5、array、objectde特殊用法

先建立一条数据
db.Oldboy.insert({"name":"路飞学城-骑士计划","price":[19800,19500,19000,18800],"other":{"start":"2018年8月1日","start_time":"08:30","count":150}})

把price 中 19000 改为 19300
db.Oldboy.updateMany({"name":"路飞学城-骑士计划"},{$set:{"price.2":19300}})

如果 price.1 中小于19800 则加 200
db.Oldboy.updateMany({"name":"路飞学城-骑士计划","price.1":{$lt:19800}},{$inc:{"price.1":200}})

我们把 price 小于 19500 的 自动补上 200
db.Oldboy.updateMany({"name":"路飞学城-骑士计划","price":{$lt:19500}},{$inc:{"price.$":200}})

db.Oldboy.updateMany({"price.count":{$gt:175}},{$inc:{"price.$.count":15}})

6、skip,limit、sort

db.Oldboy.find().skip(1).limit(2)

db.Oldboy.find().sort({"price":1}) #1为升序,-1为降序

Sort + Skip + Limit 是有执行优先级的 他们的界别分别是 优先 Sort 其次 Skip 最后 Limt

posted @ 2019-03-21 09:37  中杯可乐不加冰  阅读(236)  评论(0编辑  收藏  举报