zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Mobox企业网盘回收站文件清空与恢复的管控
    NAS设备部署后采用Mobox企业云盘来提升管理功能
    企业网盘支持对象存储帮助用户推行私有云
    阿里云登录界面无法输入账号及密码的解决方法
    团队协作管理-任务追踪管理
    windows10 家庭版 无法远程2012的解决
    bat删除多少天前的文件包含子目录
    企业网盘居然支持高速局域网文件传输工具(速度可达20M)
    防范永恒之蓝勒索病毒-XP、Win10文件共享怎样设置
    【OpenGL】学习笔记#2
  • 原文地址:https://www.cnblogs.com/fengchong/p/10569632.html
Copyright © 2011-2022 走看看