MongoDb知识点整理(一)

MongoDb基础知识点整理

  • 可视化图形界面 compass
  • 应用场景
    • 针对三高请求
      • High performance 对数据库高并发的读写需求
      • High Storage 高效率的访问和读取
      • 对数据库的高扩展性和高可用性
    • 具体应用场景
      • 社交场景。利用MongoDB存储用户信息,以及用户发表的朋友圈
      • 游戏场景
      • 物流场景
      • 物联网场景
      • 视频直播
  • MongoDB术语/概念
    • database 数据库
    • collection 数据库表/集合
    • document 数据记录行/文档
    • field 数据字段/域
    • index 索引
    • 嵌入文档 MongoDB通过嵌入式文档来替代多表连接
    • primary key 主键MongoDB自动将_id 字段设置为主键

MongoDb linux 安装

  • 下载linux安装包(ps:MongoDB的版本号命名规则:大版本号.中版本号.小版本号,当中版本号为奇数时,指的是开发版本,当中版本号为偶数时,指的是稳定版本,所以尽量找奇数版本下载)
  • 解压
    tar zxvf mongodb-linux-x86_64-rhel70-4.2.5.tgz 
    
  • 移动目录
    mv mongodb-linux-x86_64-rhel70-4.2.5 /usr/local/mongodb
    
  • 创建数据存储目录 和 日志目录
    mkdir -p /mongodb/single/data/db
    mkdir -p /mongodb/single/logs
    
  • 创建并修改配置文件
    vim /mongodb/single/mongodb.conf
    
    • 配置文件如下
    systemLog:
      destination: file
      path: "/mongodb/single/logs/mongod.log"
      logAppend: true
    storage:
    # 启用或禁用持久性日志,保证可恢复
      dbPath: "/mongodb/single/data/db"
      journal:
        enabled: true
    processManagement:
     # 启用后台守护进程
      fork: true
    net:
    # 第二个指的是局域网
      bindIp: 127.0.0.1,172.16.146.100
      port: 27017
    setParameter:
      enableLocalhostAuthBypass: false
    
  • 启动服务
    /usr/local/mongodb/bin/mongod -f /mongodb/single/mongodb.conf 
    
  • 注意事项
    • 校验远程连接,如果远程连接未能相应连接,请检查防火墙,具体命令如下
    systemctl status firewalld
    
    如果是running状态,请关闭防火墙,或者开放特定端口
    关闭防火墙的命令如下
    systemctl stop firewalld
    
    • 服务器器是阿里云的,请注意开放阿里云自己的安全策略

mongoDb常用的操作命令

  • 数据库操作
    • 数据库展示
      show dbs
    • 数据库创建或者转换
      use test
    • 展示当前数据库
      db
    • 删除数据库
      db.dropDatabase()
  • 集合操作
    • 创建集合
      db.createCollection("test")
    • 删除集合
      db.test.drop()
    • 展示集合
      show collections
  • 文档基本的CRUD
    • 插入
    db.test.insert(Bson)
    db.test.insertMany(BSon集合) 
    # 批量插入的时候使用try catch
    try {
      db.test.insertMany(BSon集合); 
    }catch(e){
      print(e)
    }
    
    • 删除
    # 删除全部数据
    db.test.remove({});
    # 删除部分数据
    db.test.remove();
    
    • 更新
    db.test.update(query,update,options);
    #覆盖修改 会把之前的所有数据都覆盖
    db.test.update({_id:"1"},{name:"111"});
    #局部修改,只修改部分数据
    db.test.update({_id:"1"},{$set:{name:"111"}});
    #批量修改 不加参数只会修改第一条
    db.test.update({userId:"1"},{$set:{name:"111"}},{multi:true});
    #自增长
    db.test.update({userId:"1"},{$inc:{name:NumberInt(1)}});
    
    • 查询
    db.test.find()
    db.test.find({})
    db.test.findOne({})
    db.test.find({name:"123"},{name:1})
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 1,001评论 0 2
  • 简介 MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WE...
    大熊_7d48阅读 37,570评论 1 9
  • 1. MongoDB 简介 MongoDB是一个可扩展的高性能,开源,模式自由,面向文档的NoSQL,基于分布式文...
    rhlp阅读 1,164评论 0 3
  • 一、Mongodb数据库 Day01 1.课程介绍 数据库概述(了解) NoSQL和MongoDB简介(了解) M...
    满天繁星_28c5阅读 516评论 0 5
  • Mongodb数据库 课程介绍 Ø 数据库概述(了解) Ø NoSQL和MongoDB简介(了解) Ø Mongo...
    致自己_cb38阅读 1,780评论 0 4