• MongoDB 基础学习


    基本介绍

    • MongoDB 是为了快速开发互联网 Web 应用而设计的数据库系统
    • MongoDB 的设计目标是极简、灵活、作为 Web 应用栈的一部分
    • MongoDB 的数据模型是面向文档的,所谓文档是一种类似于 JSON 的结构,所以我们可以简单的理解为MongoDB 中存放的是各种各样的 JSON(其实是BSON)

    三个概念

    • 数据库(database):数据库是一个仓库,存放集合
    • 集合(collection):集合类似于数组,存放文档
    • 文档(document):文档数据库中的最小单位,我们存储和操作的内容都是文档

    安装与启动(Windows)

    安装:

    1. 下载地址:https://www.mongodb.org/dl/win32/
    2. 下载后一路 next,傻瓜式安装,想修改安装路径就改一下
    3. 配置环境变量:找到安装位置,将 bin 文件夹的位置添加到环境变量 path 中
    4. 在 C 盘根目录创建一个 data 文件夹,data 里面创建一个 db 文件夹。(不在 C 盘创建也可以,不过启动的时候需要加上 --dbpath 路径

    命令行启动(不推荐):

    1. 打开 cmd 窗口,输入 mongod 来启动服务器,出现如下界面即可。

      默认端口 27017,可以通过 --port 端口号 来指定。

    2. 浏览器访问:localhost:27017,出现如下界面

    3. 再打开一个 cmd 窗口,输入 mongo 启动客户端,之后就可以对数据库进行操作了

    创建服务的方式启动(推荐)

    以命令行的方式启动有些麻烦,而且打开的 cmd 窗口关闭后 mongodb 服务也会关闭,因此我们需要将其设置为后台运行

    1. 在 C 盘创建 data 文件夹,data 下创建 db 和 log 文件夹

    2. 在安装目录(bin 的同级目录)添加一个 mongod.cfg 文件,添加如下内容

      systemLog:
      	destination: file
          path: c:datalogmongod.log
      storage:
          dbPath: c:datadb
      
    3. 以管理员身份打开 cmd 窗口,输入以下命令(将其中的路径改为自己安装的路径)

      sc.exe create MongoDB binPath= ""D:devtoolsMongoDBServer3.4inmongod.exe" --service --config="D:devtoolsMongoDBServer3.4mongod.cfg"" DisplayName= "MongoDB" start= "auto"
      

    4. 打开服务列表,右键启动 MongoDB

    5. 如果启动失败,证明上边的操作有误,在控制台输入 sc delete MongoDB 删除之前配置的服务,然后从第一步再来一次。

    基本命令

    • show dbs / show databases:显示所有的数据库
    • use <database name>:使用指定数据库
    • db:查看当前正在使用的数据库
    • show collections:查看当前数据库中所有的集合

    CRUD 操作

    格式:db.集合名.操作(数据)

    1. 增加

      /*在 person 集合中增加一个文档*/
      db.person.insertOne({name: "张三", age: 20, gender: "男"})
      
      /*在 person 集合中增加一个或多个文档*/
      db.person.insert([
          {name: "张三", age: 20, gender: "男"},
          {name: "李四", age: 19, gender: "男"},
          {name: "王五", age: 18, gender: "男"}
      ])
      
      /*插入多个也可以通过insertMany实现*/
      db.person.insertMany(...)
      
    2. 查询

      /*查询 person 集合下所有符合条件的文档,返回的是一个数组,可以在后面加[index]获取指定位置的值*/
      db.person.find({name:"王五"})
      
      /*查询符合条件的第一个文档*/
      db.person.findOne()
      
      /*查询符合条件的文档数量*/
      db.person.find().count()
      
    3. 更新

      /*可以修改、替换集合中的一个或多个文档*/
      db.person.update({name: "张三"}, {$set:{name: "王五"}})
      
      /*修改集合中的一个文档*/
      db.collection.updateOne()
      
      /*修改集合中的多个文档*/
      db.collection.updateMany()
      
      /*替换集合中的一个文档*/
      db.collection.replaceOne()
      
    4. 删除

      /*删除集合中的一个或多个文档(默认删除多个)*/
      db.collection.remove()
      
      /*删除集合中的一个文档*/
      db.collection.deleteOne()
      
      /*删除集合中的多个文档*/
      db.collection.deleteMany()
      
      /*清空一个集合*/
      db.collection.remove({})
      
      /*删除一个集合*/
      db.collection.drop()
      
      /*删除一个数据库*/
      db.dropDatabase()
      
  • 相关阅读:
    关于生产库的表空间是否自己主动扩展的看法?
    Hive创建外部表以及分区
    oninput,onpropertychange,onchange的使用方法和差别
    cacti
    java实现第五届蓝桥杯殖民地
    java实现第五届蓝桥杯殖民地
    java实现第五届蓝桥杯殖民地
    java实现第五届蓝桥杯殖民地
    java实现第五届蓝桥杯殖民地
    java实现第五届蓝桥杯LOG大侠
  • 原文地址:https://www.cnblogs.com/songjilong/p/13356326.html
Copyright © 2020-2023  润新知