MongoDB的安装和基础CRUD

  • 安装
  • 运行
  • CRUD
    • 比CRUD还要基础的命令
    • Create
    • Read
    • Update
    • Delete
  • Mongo Campass
  • Mongo Atlas

基本上来说做到能用就行,有花什么的后期有时间再折腾吧。

系统平台用的是Windows,Mac的配置应该也差不多,都是下载installer就行了,不过加环境肯定是不一样的。

用CURL(Linux)或者是Brew(MacOS)应该也可以,但是我没用过。

学习文档还是要看官方文档,这里只是一个基础介绍。

安装

  • 下载社区版的Mongodb:

    在旁边platform里面,常见的平台包括 CentOS/RedHat, Ubuntu, MacOS, Debian都是有支持的。

  • 打开下载好的安装包,我用的是 windows ,所以是 msi 。界面顺序如下:


    因为我已经安装好了,又懒得卸载重装,截图就不放了,有具体要求的可以跟着官方文档走一遍:Install MongoDB Community Edition on Windows。

    有几个细节要注意的,以下出现的步骤按照安装时的顺序:

    1. 在选择 安装类型(Setup Type) , 的时候,除非知道你要做什么,否则就选择 完全版(Complete) 后,进入下一步。

    2. 关于 服务配置(Service Configuration) ,从版本 v4.0 之后有作为Windows服务的启动项配置,最大的区别就是:

      • 作为Windows服务 的MongoDB是默认开启的

      • 不作为 Windows服务 的MongoDB不是默认开启的,每次使用都需要运行 mongod 指令开启服务器。

      电脑配置还可以的话选择 作为Windows服务 即可。

    3. 选择是否安装 MongoDB Compass

      这是 MongoDB 自己的一个GUI,默认是安装的。

    4. 等待完成安装。

运行

powershell 或者是 cmd 运行问题都不大,如果有 VSC 的话, 在 VSC 的终端里面运行也是一样的。我这里选择用 powershell 因为我把路径的配置改了,现在只会显示当前文件夹,看起来舒服很多。

  1. 第一次运行的时候,如果没有配置 path ,只是单纯的想要看一下效果的话,可以用以下命令行尝试开启 mongodb:

    # 路径为安装地址,如果没有修改过的话路径应该都是一样的
    C:\> cd "C:\Program Files\MongoDB\Server\4.4\bin\"
    # 如果你没有选择 MongoDB 作为 Windows Service
    # 应该后面会跳出很多的东西,然后告诉你 MongoDB 在默认端口运行了
    # 默认端口是 27017
    bin> .\mongod.exe
    # 运行mongodb
    bin> .\mongo.exe
    MongoDB shell version v4.4.4connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("352d7c1c-3f15-400b-9520-af4cdcc18f23") }
    MongoDB server version: 4.4.4
    ---
    The server generated these startup warnings when booting:2021-03-25T11:41:15.023-05:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
    ---
    ---Enable MongoDB's free cloud-based monitoring service, which will then receive and displaymetrics about your deployment (disk utilization, CPU, operation statistics, etc).The monitoring data will be available on a MongoDB website with a unique URL accessible to youand anyone you share the URL with. MongoDB may use this information to make productimprovements and to suggest MongoDB products and deployment options to you.To enable free monitoring, run the following command: db.enableFreeMonitoring()To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
    ---
    

    如果显示信息和我差不多的话,那么 MongoDB 就已经配置完成,并且能够顺利运行了。

  2. 配置环境变量

    又回忆起当年安装 JAVA 时候配置环境了,python 和 node 用 anaconda和 .msi 已经没这个烦恼了

    • 搜索 env 即可:

    • 打开 编辑系统环境变量(Edit the System environment variables)

    • 选择高亮的这个,也就是 Environment Variables ...

    • 在系统变量里面选择 Path

    • 编辑后,新增一条 C:\Program Files\MongoDB\Server\4.4\bin 即可。

  3. 现在打开新的终端,直接输入 mongo.exe 就可以打开 MongoDB 了。

    # 注意现在在C盘下,而不是 bin 里
    C:\> mongo.exe
    MongoDB shell version v4.4.4
    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("39781e32-cc34-48ec-85d3-eb2333069ee3") }
    MongoDB server version: 4.4.4
    # 下省略```
    
  4. 退出 MongoDB ,直接输入 exit ,或者 ctrl+c 即可。

    > exit
    bye
    # 使用 ctrl+c 的效果一样
    > ^C
    bye
    

CRUD

比CRUD还要基础的命令

  • 显示所有的数据库

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    
  • 显示 collections ,如果不选中/使用一个数据库的话,show collections 是不会有任何反应的。

    > show collections
    > use admin
    switched to db admin
    > show collections
    system.version
    
  • 使用数据库

    > use db-name
    
  • 创建新的数据库,当没有数据库的时候,使用 use 会创建一个新的数据库。

    但是这个时候查看所有的数据库是没有刚刚创建的 mgdb 的。只有插入了一条数据之后,数据库才会正式被创立。

    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    > use mgdb
    switched to db mgdb
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    
  • 查看当前数据库:

    同样的,在没有插入数据的时候,尽管能够“看”到当前数据库是 mgdb, 但是在 show dbs 里是看不到的。

    > db
    mgdb
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

Create

  • db.COLLECTIONS.insertOne(),创建一条新数据

    > db.test.insertOne(
    ... {"name": "test"}
    ... )
    {"acknowledged" : true,"insertedId" : ObjectId("605da59cdc93e1ab69efd703")
    }
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    mgdb    0.000GB
    

    插入了一条数据之后,这个数据库已经可见了。同样的,如果没有 当前COLLECTIONS 存在的话,MongoDB 会创建一个新的 COLLECTIONS

  • db.COLLECTIONS.insertMany(),创建多条新数据

    > db.test.insertMany([
    ... {"name": "Example"},
    ... {"name": "Example2", "desc": "Hello World"},
    ... ])
    {"acknowledged" : true,"insertedIds" : [ObjectId("605da5d7dc93e1ab69efd704"),ObjectId("605da5d7dc93e1ab69efd705")]
    }
    

*: db.collection.insert() 在主流平台上已经不支持了,CRUD 操作现在都以 CRUDOne()CRUDMany() 为主。

Read

  • db.collection.find(), 我有暗戳戳的加了其他的数据。

    > db.test.find()
    { "_id" : ObjectId("605da208dc93e1ab69efd700"), "name" : "test" }
    { "_id" : ObjectId("605da466dc93e1ab69efd701"), "name" : "example" }
    { "_id" : ObjectId("605da466dc93e1ab69efd702"), "name" : "example2", "desc" : "Hello World" }
    { "_id" : ObjectId("605da59cdc93e1ab69efd703"), "name" : "test" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd704"), "name" : "Example" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd705"), "name" : "Example2", "desc" : "Hello World" }
    { "_id" : ObjectId("605da806dc93e1ab69efd706"), "name" : "test3" }
    { "_id" : ObjectId("605da860dc93e1ab69efd707"), "name" : "test4", "rank" : 4 }
    { "_id" : ObjectId("605da87ddc93e1ab69efd708"), "name" : "test5", "rank" : 5 }
    
  • find() 里可以传的搜索条件
    • 具体的信息

      > db.test.find({name: "test"})
      { "_id" : ObjectId("605da208dc93e1ab69efd700"), "name" : "test" }
      { "_id" : ObjectId("605da59cdc93e1ab69efd703"), "name" : "test" }
      
    • 比较,常见的有$lt, $lte, $gt, $gte

      > db.test.find({rank: {$lt: 5}})
      { "_id" : ObjectId("605da860dc93e1ab69efd707"), "name" : "test4", "rank" : 4 }
      > db.test.find({rank: {$gt: 4}})
      { "_id" : ObjectId("605da87ddc93e1ab69efd708"), "name" : "test5", "rank" : 5 }
      
    • $or

      > db.test.find({$or: [{name: "test"}, {rank: 4}]})
      { "_id" : ObjectId("605da208dc93e1ab69efd700"), "name" : "test" }
      { "_id" : ObjectId("605da59cdc93e1ab69efd703"), "name" : "test" }
      { "_id" : ObjectId("605da860dc93e1ab69efd707"), "name" : "test4", "rank" : 4 }
      
    • 其他计算还包括 $and $not 等。

Update

  • db.COLLECTIONS.updateOne()

    > db.test.updateOne({name: "test"}, {$set: {"rank": 2}})
    { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
    > db.test.find()
    { "_id" : ObjectId("605da208dc93e1ab69efd700"), "name" : "test", "rank" : 2 }
    { "_id" : ObjectId("605da466dc93e1ab69efd701"), "name" : "example" }
    { "_id" : ObjectId("605da466dc93e1ab69efd702"), "name" : "example2", "desc" : "Hello World" }
    { "_id" : ObjectId("605da59cdc93e1ab69efd703"), "name" : "test" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd704"), "name" : "Example" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd705"), "name" : "Example2", "desc" : "Hello World" }
    { "_id" : ObjectId("605da806dc93e1ab69efd706"), "name" : "test3" }
    { "_id" : ObjectId("605da860dc93e1ab69efd707"), "name" : "test4", "rank" : 4 }
    { "_id" : ObjectId("605da87ddc93e1ab69efd708"), "name" : "test5", "rank" : 5 }
    

    注意这里第一个 test 现在有了一个特性是 “rank”:2

Delete

  • db.COLLECTIONS.deleteOne()

    > db.test.deleteOne({name: "example2"})
    { "acknowledged" : true, "deletedCount" : 1 }
    > db.test.find()
    { "_id" : ObjectId("605da208dc93e1ab69efd700"), "name" : "test", "rank" : 2 }
    { "_id" : ObjectId("605da466dc93e1ab69efd701"), "name" : "example" }
    { "_id" : ObjectId("605da59cdc93e1ab69efd703"), "name" : "test" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd704"), "name" : "Example" }
    { "_id" : ObjectId("605da5d7dc93e1ab69efd705"), "name" : "Example2", "desc" : "Hello World" }
    { "_id" : ObjectId("605da806dc93e1ab69efd706"), "name" : "test3" }
    { "_id" : ObjectId("605da860dc93e1ab69efd707"), "name" : "test4", "rank" : 4 }
    { "_id" : ObjectId("605da87ddc93e1ab69efd708"), "name" : "test5", "rank" : 5 }
    
  • db.test.deleteMany({})
    如果里面传空数据的话,会把所有的数据全都删除

Mongo Campass

MongoDB的GUI,看起来如下:

Mongo Atlas

MongoDB 自己家的云产品,对于一定存储量(少于512MB好像),以及在线用户不是很多(同时访问少于100个好像)的情况下是免费使用的。

我注册了一个玩,白嫖使人快乐

现在只是创建了一个 cluster,然后本地 compass 连上了,之后的学习什么的说不定也可以放在这上面host也说不定诶……反正不会有很多人看的。

MongoDB的安装和基础CRUD相关推荐

  1. SpringBoot整合MongoDB数据库并实现基础CRUD

    MongoDB安装教程:MongoDB数据库安装以及将MongoDB设置为系统服务 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.旨为WEB应用提供可扩展的高性 ...

  2. mongodb极速安装及基础操作命令

    mongodb 一.安装 # linux 安装下载mongodb,并解压# 进入mongodb目录,在目录下创建数据存储目录mkdir -p data/db 启动 mongodb 的启动方法分为两种方 ...

  3. 【国庆弯道超车系列】NoSQL基础及MongoDB入门安装

    在互联网快速发展的今天,数据种类和格式越来越多样化,传统的关系型数据库已经难以适应,在此种情况下No SQL应运而生,本文主要讲解NoSQL的基础知识,及MongoDB的入门安装,仅供学习分享使用,如 ...

  4. MongoDB的安装及基本命令和pymongo的使用

    Mac中MongoDB的安装以及基本命令和pymongo的使用 一. NoSQL简介 1.NoSQL介绍 NoSQL全名为Not Only SQL, 指的是非关系型数据库, 在现代的计算系统上每天网络 ...

  5. Windows下MongoDB的安装与设置MongoDB服务

    Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB ...

  6. mongodb连接失败_MongoDB 基础入门

    mongodb 一.NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数 ...

  7. Ubuntu下mongodb的安装与配置

    MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便.这里介绍在Ubuntu下mongodb的安装与配置. 1.下载 mongodb可以在官网上下载,地址,选择Ubun ...

  8. 用pymongo对mongoDB增删改查(CRUD)

    pymongo操作mongoDB的增删改查 | CRUD pymongo简介 连接本地mongoDB 连接远程MongoDB 数据库CRUD 使用现有数据库 增 删 改 查 集合CRUD 增 删 改 ...

  9. 数据库应用----Mongodb 4.0 版本 基础操作---复制集,选举方法、部署认证 (二)

    Mongodb 4.0 版本 基础操作-复制集,选举方法.部署认证 (二) 文章目录 Mongodb 4.0 版本 基础操作---复制集,选举方法.部署认证 (二) 一.MongoDB 复制集 二.部 ...

  10. 详细介绍, 不详请@me :nosql 数据库---MongoDB的安装和使用, 同时介绍一个终端控制神器

    目录 MongoDB在不同虚拟机系统中的安装步骤: @Centos系统下的Mongodb安装 @ 介绍一个终端控制神器. @介绍ubantu虚拟机中安装mongodb @ Windows本地mongo ...

最新文章

  1. 模型融合方法最全总结!
  2. Spring+hibernate+struts
  3. ifconfig没有命令 kali_新装的Linux系统没有ifconfig命令?教你一键找回
  4. java 车站分级问题_【NOIP2013 普及组】车站分级
  5. 542. 01 Matrix
  6. 【elasticsearch】block.ClusterBlockException: blocked by: SERVICE_UNAVAILA
  7. div透明但不导致内容div透明的解决方法
  8. 一张图超过了屏幕大小 如何自动将多出部分隐藏 只显示中间部分
  9. 用计算机表白的数字,数字表白密码 表白密码大全
  10. 应聘阿里的前车之鉴:从被回绝的系列原因出发,解读应聘阿里注意事项
  11. VS 2015 设置为透明主题
  12. odoo16外部api接口
  13. 梯度下降算法_Adam-一种随机优化算法
  14. ST-Link设备连接。 Could not verify ST device! Abort connection.
  15. 学生信息管理系统——用户登录模块问题篇
  16. Android之——常用手机号码功能
  17. 动态规划(免费馅饼)
  18. 店铺运营咨询师认证考试
  19. 在这里学会3D建模不是问题!
  20. 学计算机音视频教程,教学视频教程_在线免费教学视频大全

热门文章

  1. Nginx不解析PHP,无法打开PHP文件
  2. 【C语言】快速排序psort函数的用法及自主实现psort函数
  3. 数据仓库系列之总线架构
  4. 百练2967:特殊日历计算题解
  5. Bootstrap实战 - 评论列表
  6. 如何删除双系统中的Linux系统
  7. android studio 中要在app名称中添加特殊符号
  8. 低成本电容式触摸感应设计
  9. Win10桌面背景消失了变黑的解决方法
  10. 高尔顿钉板与二项分布