• MongoDB数据库


    一.MongoDB的下载:https://www.mongodb.com/

    二.MongoDB的安装:

      1.默认安装,点下一步

      2.自定义安装

              

    三.mongodb安装完成后的配置

      1.安装完成后配置环境变量path:将mongodb的bin的路径放在path下面

      2.在启动mongodb之前需要先在c盘的目录下面建文件夹data/db(默认数据库的路径)

      3. 启动mongodb:打开cmd>>>>>>输入mongod 这样就启动了mongodb

    •   查看mongodb的帮助:cmd里面mongod --help
    •   mongod 选项   --dbpath  数据库存放路径

              --install   安装windows服务

               --remove  卸载windows服务

      4.修改mongodb的数据库路径示例:

        4.1在D盘创建文件夹mongoDBdatadb

        4.2打开cmd>>>>>>>>>>输入mongod --dbpath D:mongoDBdatadb这样就将MongoDB的数据库路径改到了D盘相应的文件夹下面了

    四.MongoDB客户端的链接

      1.在cmd中启动MongoDB服务    命令是mongod

    • 如果出现以下错误,需要在c盘创建相应的文件夹然后再启动mongodb

     

      2.在不关闭MongoDB服务的情况下,重新打开一个cmd窗口运行MongoDB自带的客户端   命令是mongo

     五.用MongoDB自带的客户端可以做以下的简单操作

      1.show databases 查看本地磁盘数据库

      2.use dbname 切换当前使用的数据库
      3.db 查看当前使用的数据库
      4.show tables 查看当前数据库存放在磁盘上的数据表

      5.use+不存在的数据库    创建了数据库 当前创建的数据库没有存放在磁盘中
      6.db.tablename 不存在的表名 创建数据表 当前数据表没有存放在磁盘中

    • 刚创建的数据库和数据表,是不会放在磁盘上面的,但是如果表里有数据的话就会放在磁盘上面
    • 一个概念:- 使用了不存在的对象即创建该对象           - 不限制数据结构

     

    • MongoDB的默认服务端口为 27017 - redis:6379 mysql:3306 

     六.使用第三方客户端NoSQLBooster4MongoDB来操作MongoDB

       1.NoSQLBooster客户端下载地址:https://nosqlbooster.com/downloads

      2.创建create  端口是27017

      3.NoSQLBooster客户端对表数据的增删改查:

    3.1增加数据:
    db.tablename.insert({"key":"value"}) 

    官方推荐写法:
    db.users.insertOne({})
    db.users.insertMany([{},{},{}])

    3.2查询数据:
    db.tablename.find() 查询符合条件的所有数据
    db.tablename.find({"name":"AlexDSB"})

    db.tablename.findOne() 查询符合条件的第一条数据

    3.3修改数据:
    db.tablename.update({"name":"AlexDSB"},{"$set":{"age":84}}) 只修改符合条件的一条数据
    $set - set修改器 强制替换覆盖

    官方推荐写法
    db.tablename.updateOne() 更新符合条件的第一条数据
    db.tablename.updateMany() 更新符合条件的所有数据

    array+Object : db.users.updateOne({"cours.name":"装X"},{$set:{"cours.$.score":"000"}})

    3.4删除数据:
    db.tablename.remove({})
    db.tablename.remove({age:73}) 删除所有age==73的数据

    官方推荐写法
    db.users.deleteOne() 删除符合条件的第一条数据
    db.users.deleteMany() 删除符合条件的所有数据

     4.数据类型 

      ObjectId :Documents 自动生成的 _id
      _id:ObjectId("5cb69a23815ea7295f8bad43") 自动生成的 json数据中不包含ObjectId类型 id类型uuid
      String: 字符串,必须是utf-8
      Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
      Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
      Double:浮点数 (没有float类型,所有小数都是Double)
      Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
      Object:深度<=4 如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
      Null:空数据类型 , 一个特殊的概念,None Null
      Timestamp:时间戳 通常不用这个数据类型 如果存储时间 Double
      Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

    5.数学比较符:
      $lt : 小于 √
      $lte: 小于等于 √
      $gt : 大于 √
      $gte: 大于等于 √


      $ne : 不等于
      $eq or 冒号 : 等于

    6.查询关键字:
      Array数据类型会自动遍历
      $in 或者等于相同字段 db.users.find({age:{$in:[19,109]}})
      $or 或者等于不同字段 db.users.find({$or:[{age:19},{age:84}]})
      $and or 逗号 并列条件

      $all - Array 数据类型 子集查询 db.users.find({hobby:{$all: ["罗玉凤"]}})

    7.$字符特殊用法:
      存储符合条件的元素下标索引
      用于修改字段


    8.修改器:
      $set - set修改器 强制替换覆盖
      $unset - 强制删除字段
      $inc - 引用增加

    array操作:
      $push append 在array中追加 db.users.update({name:"AlexDSB"},{$push:{hobby:"特斯垃圾"}})
      $pushAll extend 在array中追加列表中的所有元素 db.users.update({name:"AlexDSB"},{$pushAll:{hobby:["22寸轮毂","V8","欧林斯"]}})
      $pull remove 在array中删除一个元素 db.users.update({name:"AlexDSB"},{$pull: {hobby:"V8"}})
      $pullAll 在array中删除一堆元素 db.users.update({name:"AlexDSB"},{$pullAll: {hobby:["小敏","芙蓉姐姐"]}})
      $pop pop 删除第一个 -1 或最后一个 1 的值 db.users.update({name:"AlexDSB"},{$pop: {hobby:1}})

    9.skip sort limit
      sort 排序
      db.users.find({}).sort({ age:1 })
      db.users.find({}).sort({ age:1 , birthday:-1 })

    limit(1) 选取条目
      db.users.find({}).limit(3000)

    skip(1) 跳过
      db.users.find({}).skip(1)

    跳过选取
    db.users.find({}).skip(2).limit(3)

    • 先排序 再跳过 最后筛选

    db.users.find({}).limit(3).skip(2).sort({ age:-1 })

    分页:
      (page-1)*num
      db.users.find({}).limit(num).skip((page-1)*num)

  • 相关阅读:
    pop指令的执行过程
    ipad 4.2 开发环境
    XP远程桌面
    停机问题、哥德尔定理
    看MIT的线性代数
    VizA项目继续推进
    port systemc to mac os x
    关于jar
    普桑
    拉突爾
  • 原文地址:https://www.cnblogs.com/l1222514/p/10726467.html
Copyright © 2020-2023  润新知