编辑
2024-04-24
数据库
00
请注意,本文编写于 176 天前,最后修改于 164 天前,其中某些信息可能已经过时。

目录

部署(centos 7)
环境准备
下载部署
启动数据库
语法(增删改查)
数据库
集合
文档

部署(centos 7)

环境准备

MongoDB提供了许多linux发行版本的安装包,可直接去官方网站进行下载:MongoDB

下载之前,需要安装相关依赖

需要放行防火墙端口或关闭防火墙(MongoDB默认端口:27017),关闭selinux


  • Red Hat/CentOS:

    sh
    yum install -y libcurl openssl

  • Ubuntu 18.04 LTS ("Bionic")/Debian 10 "Buster":

    sh
    apt-get install libcurl4 openssl

  • Ubuntu 16.04 LTS ("Xenial")/Debian 9 "Stretch":

    sh
    sudo apt-get install libcurl3 openssl

注意:mongo v5版本以上系统需支持AVX指令集,请查看系统版本再选择安装


下载部署

服务器版本MongoDB版本
CentOS 7mongodb-4.2.25

在官方网站选择所需要下载的tgz复制link:

image-20240424161449573

安装

sh
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.25.tgz # 解压到指定路径/usr/local tar zxvf mongodb-linux-x86_64-rhel70-4.2.25.tgz -C /usr/local # 修改名称 mv mongodb-linux-x86_64-rhel70-4.2.25/ mongodb-4.2.25 # 配置环境变量,在最下方添加语句 vim /etc/profile export PATH=export PATH=/usr/local/mongodb-4.2.25/bin:$PATH # 更新环境变量 source /etc/profile

image-20240424162109510


MongoDB需要两个目录

  • 数据存储目录:/var/lib/mongo
  • 日志文件目录:/var/log/mongod
sh
# 创建目录 mkdir -p /var/lib/mongo mkdir -p /var/log/mongod

启动数据库

进入MongoDB所在bin目录下

sh
# 进入MongoDB所在bin目录 cd /usr/local/mongodb-4.2.25/bin # 启动MongoDB服务 ./mongod --dbpath /var/lib/mongo --logpath /var/log/mongod/mongod.log --fork

image-20240424162736576


在任何地方输入mongo即可进入数据库


语法(增删改查)

数据库

  • 创建数据库

    sql
    -- 如果数据库不存在,则创建数据库,否则进入数据库 -- 创建一个 chuntian 的数据库 > use chuntian switched to db chuntian -- db 为查看当前数据库 > db chuntian -- 查看所有数据库 > show dbs admin 0.000GB config 0.000GB local 0.000GB -- -- 创建的数据库 chuntian 并不在数据库的列表中, 要显示它,需要向 chuntian 数据库插入一些数据 > db.chuntian.insertOne({"name":"春天"}) { "acknowledged" : true, "insertedId" : ObjectId("6628c5de0dbc76d4ed029024") } > show dbs admin 0.000GB config 0.000GB local 0.000GB chuntian 0.000GB

  • 删除数据库

    sql
    -- 删除当前数据库,默认删除 test db.dropDatabase() -- 删除 chuntian 数据库 > show dbs admin 0.000GB chuntian 0.000GB config 0.000GB local 0.000GB > db chuntian > db.dropDatabase() { "dropped" : "chuntian", "ok" : 1 }


集合

集合类似MySQL数据库中的表

  • 创建集合

    sql
    db.createCollection(name,options)

    参数说明:

    • name:创建集合的名称
    • options:可选参数,指定有关内存大小及索引

    options 如下参数:

    字段类型描述
    capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。
    autoIndexId布尔3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
    size数值(可选)为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。
    max数值(可选)指定固定集合中包含文档的最大数量。
    sql
    -- 在 chuntian 数据库中创建 omm 集合 > use chuntian switched to db chuntian > db.createCollection("omm") { "ok" : 1 } -- 查看集合,也可以使用show collections > show tables omm

    关键参数的用法

    sql
    -- 创建固定集合 cmd,整个集合空间大小 3141592 B,文档最大个数为1000个 > db.createCollection("cmd", { capped : true, autoIndexId : true, size : 3141592, max : 1000 } ) { "note" : "the autoIndexId option is deprecated and will be removed in a future release", "ok" : 1 } > show tables mycol omm

    在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合

    sql
    > db.cmd2.insert({"name":"春天"}) WriteResult({ "nInserted" : 1 }) > show tables cmd2 cmd omm

  • 删除集合

    如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

    sql
    -- 删除 cmd 集合 > show tables cmd2 cmd omm > db.cmd.drop() true > show tables cmd2 omm


文档

文档相当于MySQL数据库中的数据

文档的数据结构和 JSON 基本一致

  • 插入文档

    sql
    -- 在 chuntian 数据库中 omm 集合中插入文档 > db.omm.insert({title: 'Mongo文档插入', description: 'Mongo数据库', by: '春天', url: 'https://blog.tenchuntian.cn/', tags: ['mongodb','databaes','sql'], likes: 100}) > WriteResult({ "nInserted" : 1 }) -- 查看文档 > db.omm.find() { "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }

  • 更新文档

    update()方法:

    update()方法用于更新已存在的文档

    sql
    -- 语法 db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )

    参数说明:

    • query : update的查询条件,类似sql update查询内where后面的。
    • update : update的对象和一些更新的操作符(如,,inc...)等,也可以理解为sql update查询内set后面的
    • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    • writeConcern :可选,抛出异常的级别。

    通过 update() 方法来更新标题(title):

    sql
    > db.omm.update({'title':'Mongo文档插入'},{$set:{'title':'MongoDB'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) -- 查看是否更新成功 > db.omm.find() { "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }

  • 删除文档

    sql
    -- 插入两次文档 > db.omm.find() { "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 } { "_id" : ObjectId("6628d674489aab02f9134a19"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 } -- 删除title为'MongoDB'的文档 > db.omm.remove({'title':'MongoDB'}) WriteResult({ "nRemoved" : 1 }) -- 再次查看只剩一个文档了 > db.omm.find() { "_id" : ObjectId("6628d674489aab02f9134a19"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 } -- 删除所有数据 > db.omm.remove({}) WriteResult({ "nRemoved" : 1 }) > db.omm.find() >

  • 查询文档

    find()语法如下:

    sql
    db.collection.find(query, projection)

    • query :可选,使用查询操作符指定查询条件
    • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

    如果你需要以易读的方式来读取数据,可以使用 pretty() 方法:

    sql
    > db.omm.find().pretty() { "_id" : ObjectId("6628d7da489aab02f9134a1a"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }

    find()可以传入多个条件,每个条件用逗号隔开:

    sql
    -- 两个文档 > db.omm.find().pretty() { "_id" : ObjectId("6628d7da489aab02f9134a1a"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 } { "_id" : ObjectId("6628d884489aab02f9134a1b"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 } -- 查看 title 为'MongDB'的文档 > db.omm.find({'title':'MongoDB'}).pretty() { "_id" : ObjectId("6628d884489aab02f9134a1b"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }


持续更新中
//内容参考:菜鸟教程

本文作者:春天y

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!