数据库-Mongo

  1. 分类【有没有表】
    • 关系型【sql】数据库
      • 表明:MySQL
      • 组成
        • 数据库/表/行
    • 非关系型【Nosql】数据库
      • 表明:MongoDB
      • 组成
        • 数据库/集合/文档
      • 文档中存储的是键值对,相似于json
      • MongoDB的数据类型是:bson
      • bson是json 的超集,能够存储二进制【图片,视频,音频】
  2. 分布式
    • 前端: 相似 模块化
    • Java: 微服务 、 分布式 springboot[框架]
    • 大数据: 微服务 分布式 hadoop [框架]
    • Php: ThinkPhp [框架]

。。。。。。。。。。。。。前端

Mongo数据库

安装git

一直next便可,在遇到 I accept the terms in the License Agreement 时取消勾选sql

MongoDB的安装

  1. 对mongodb数据库的操做是经过执行命令来完成的,个人电脑里面这些命令安装在: C:\Program Files\MongoDB\Server\3.2\binmongodb

  2. 要执行这些命令,须要以管理员身份运行cmd( 不建议用git来操做,由于git不是utf-8编码,会有中文乱码问题)。 打开开始菜单,找到命令提示符,在上面点击右键,选择以管理员身份运行。数据库

  3. 要想执行mongodb的命令,须要cd到他的安装目录下面的bin文件夹下。json

为了在dos窗口的任何目录下都能执行mongo的命令,须要先设置环境变量,由于计算机在执行命令的时候会在环境变量中找对应的命令。windows

  1. 设置环境变量数组

    • 右键点击此电脑,点击属性,找到高级系统设置点击,找到右下角环境变量,找到path变量点击编辑,新建输入C:\Program Files\MongoDB\Server\3.2\bin
  2. 建立文件夹(重点) 若是已经有data/log目录了就能够不作了

    • 在d盘创建一个文件夹mongodb,而且创建子目录db和log.
    • 在log目录下创建一个文件MongoDB.log ,后缀为.log. d:\mongodb\db、d:\mongodb\log, 分别用来存放数据库文件和数据库日志文件.
    • 把mongodb文件夹的只读属性去掉。

6.启动MongoDB

  • 以管理员身份运行cmd.exe,进入dos命令界面,执行下列命令

mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log"

  1. 将MongoDB安装为windows服务(重点中的重点)
  • 以管理员身份运行cmd,进入bin文件夹,执行下列命令

mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB"

  • NET START MongoDB 启动
  • 先 ctrl+c 关闭服务:net stop MongoDB

MongoDB基础使用

  1. 经常使用的命令(重点)
  • help 查看帮助

    • 显示数据库列表 > show dbs
    • 建立数据库 > use dbname
  • db.web.save({"key":"value"}) 增长数据

  • 删除数据(重点中的重点)

    1. 删除文档
      • db.users.remove({}) 删除users集合下全部数据
      • db.users.remove({"name": "lecaf"}) 删除users集合下name=”lecaf”的数据
    2. 删除集合
      • db.users.drop()或db.runCommand({"drop":"users"}) 删除集合users
    3. 删除数据库
      • db.runCommand({"dropDatabase": 1}) 删除当前数据库
  • 查找数据(重点中的重点)

    • db.users.find() 查找users集合中全部数据
    • db.users.findOne()查找users集合中的第一条数据
    • db.users.find().pretty()格式化查询到的数据
  • 修改数据(重点中的重点) db.web.update({"name":"a1"}, {$set: {sex:”women”}},true,true)修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配全部符合条件的数据,第四个参数表示修改全部匹配到的数据

  1. MongoDB高级命令(重点)
  • 条件查找
    • db.collection.find({ "key" : value }) 查找key=value的数据
    • db.collection.find({ "key" :{ $gt: value }}) key > value
    • db.collection.find({ "key" :{$lt: value }}) key < value
    • db.collection.find({ "key" :{ $gte: value }}) key >= value
    • db.collection.find({ "key" :{$lte: value }}) key <= value
    • db.collection.find({ "key" :{ $gt: value1 , $lt: value2}}) value1 < key <value2
    • db.collection.find({ "key" :{$ne: value }}) key <> value 匹配不等于该值的
    • db.collection.find({ "key": { $mod : [ 10 , 1 ] } }) 取模运算,条件至关于key % 10 == 1 即key除以10余数为1的
    • db.collection.find({"key": { $in: [ 1, 2, 3 ] } }) 属于,条件至关于key等于[ 1, 2, 3 ]中任何一个
    • db.collection.find({"key": { $nin: [ 1, 2, 3 ] } }) 不属于,条件至关于key的值不属于[ 1, 2, 3 ]中任何一个。
    • db.collection.find({ "key": { $size: 1 } })$size 数量、尺寸,条件至关于key对应的值的数量是1(值必须是数组)
    • db.collection.find({ "key": { $exists : true|false } }) $exists字段存在,true返回存在字段key的数据,false返回不存在字段key的数据
    • db.collection.find({ $or : [{a : 1}, {b : 2} ] })符合两个条件中任意一个的数据。$or语法表示或的意思。
  • 排序
    • db.collection.find().sort({ "key1" : -1 ,"key2" : 1 }) 这里的1表明升序,-1表明降序
  • 其余
    • db.collection.find().limit(5) 控制返回结果数量,若是参数是0,则没有约束,limit()将不起做用
    • db.collection.find().skip(5)    控制返回结果跳过多少数量,若是参数是0,则看成没有约束,skip()将不起做用,或者说跳过了0条
    • db.collection.find().skip(5).limit(5) 可用来作分页,跳过5条数据再取5条数据
    • db.collection.find().count() count()返回结果集的条数
    • db.collection.find().skip(5).limit(5).count(true) 在加入skip()和limit()这两个操做时,要得到实际返回的结果数,须要一个参数true,不然返回的是符合查询条件的结果总数
相关文章
相关标签/搜索