Ubuntu上安装、使用MongoDB具体教程

打印 上一主题 下一主题

主题 782|帖子 782|积分 2361

MongoDB简朴介绍

   MongoDB是所有非关系型数据库中最像关系型数据库的一种存储技术,MongoDB中的数据结构是雷同于JSON的BSON(Binary Json),这篇文章就具体介绍如何安装和使用MongoDB。
  MongoDB和MySQL中的概念对应关系
MongoDBMySQL
数据库数据库
表/集合
索引索引
文档表的行数据

一、下载MongoDB

在MongoDB官网下载对应的MongoDB版本,可以点击以下链接快速跳转到下载页面:
https://www.mongodb.com/try/download/community
https://www.mongodb.com/try/download/community如图,页面往下滚动,点击选择安装包

然后根据环境选择对应的选项,博主的Ubuntu操作系统是ubuntu-22.04.3版本,以是下载的是对应最新的Ubuntu 22.04 x64的安装包。
   留意:Ubuntu 22.04版本的操作系统有一点小题目,不建议使用,安装Ubuntu 22.03的就行了。
  


下载完成后,通过finalshell上传到虚拟机上,好比usr目录,然后解压:
  1. tar -zxvf mongodb-linux-x86_64-ubuntu2204-6.0.11.tgz
复制代码

至此,Ubuntu上MongoDB的安装工作就完成了。

二、启动MongoDB

准备工作

首先,创建MongoDB要使用的目录和文件
  1. mkdir -p /etc/mongodb/data /etc/mongodb/log /etc/mongodb/conf
复制代码
  1. touch /etc/mongodb/conf/mongodb.conf
复制代码

启动方式一

通过以下下令启动
  1. bin/mongod --port=27017 --dbpath=/etc/mongodb/data --logpath=/etc/mongodb/log/mongodb.log --bind_ip=0.0.0.0 --fork
复制代码

启动参数说明
      --dbpath:   指定数据文件存放目录        --logpath:   指定日志文件,留意是指定文件不是目录        --logappend:   使用追加的方式记载日志        --port:   指定端口,默认为   27017        --bind_ip:   默认只监听   localhost   网卡        --fork:   后台启动   
启动方式二

通过配置文件启动,修改/etc/mongodb/conf/mongodb.conf的内容
  1. systemLog:
  2.   destination: file
  3.   path: /etc/mongodb/log/mongodb.log
  4.   logAppend: true
  5. storage:
  6.   dbPath: /etc/mongodb/data
  7.   engine: wiredTiger
  8.   journal:
  9.     enabled: true
  10. net:
  11.   bindIp: 0.0.0.0
  12.   port: 27017
  13. processManagement:
  14.   fork: true
复制代码
 然后通过以下下令启动MongoDB
  1. bin/mongod -f /etc/mongodb/conf/mongodb.conf
复制代码


三、安装MongoDB Shell

访问MongoDB官网

鼠标移动到左上角的【产品】,点击Comminity Server

然后同样的鼠标移动到Resources,点击Launch and Manage MongoDB

点击左边的MongoDB手册

照旧点击左边的菜单

页面上有MongoDB Shell的介绍,这就是一个MongoDB的客户端连接工具,可以通过这个工具来写MongoDB下令操作MongoDB。

点击【Download mongosh】按钮打开下载页面

选择操作系统版本和mongosh版本,然后点击绿色的下载按钮

把下载下来的压缩包上传到/usr目录,然后解压

  1. tar -zxvf mongosh-2.0.1-linux-x64.tgz
复制代码
启动mongosh:切换到mongosh安装目录,通过bin/mongosh启动


四、使用MongoDB Shell

接着,点击右下角的三个点,在现实的下拉菜单点击Documentation
点击左边菜单中的Run Commands,然后根据文档学习mongosh的下令使用。


接下来介绍mongosh的一些常用的下令
 实行javascript脚本

  1. load("xxx.js")
复制代码
在opt目录下创建文件index.js,文件内容如下:
  1. let result = db.user.find();
  2. console.log(result);
复制代码
然后加载index.js
  1. load("/opt/index.js")
复制代码


用户操作

 查看所有用户

  1. show users
复制代码

创建用户

创建用户须要使用管理员权限,操作之前必须切换到admin数据库
  1. use admin
  2. db.createUser({user: 用户名, pwd: 密码, roles: [角色列表]});
复制代码


数据库操作

切换数据库

  1. use db_name
复制代码
好比切换到mongo数据库,如果该数据库不存在,会自动创建


删除数据库

  1. db.dropDatabase()
复制代码

显示当前数据库

作用:显示当前使用的数据库


查看所有数据库

  1. show dbs
  2. show databases
复制代码

查看数据库版本

查看数据库版本,也就是MongoDB的版本
  1. db.version()
复制代码


集合操作

创建集合

  1. db.createCollection(name, options)
复制代码
一样平常不须要使用这个下令,由于在往集合里添加数据时,如果集合不存在会自动创建
options参数的可选值
   
             参数       说明
capped是否固定集合大小,设置为true时,当集合元素达到设定的值时会覆盖最老的数据
size设置集合数据大小
             max                    指定固定集合中最大文档数量      
        删除集合

  
  1. db.collection_name.drop()
复制代码
  删除集合collection
   

   
   查看当前数据库所有集合

  
  1. show collections
复制代码
  
   文档操作

      留意,这个章节中collection是集合名称,不是下令,可以恣意取名,博主只是为了方便直接用collection
  添加操作

insert

往集合里添加一条数据
  1. db.collection.insert({"name": "mumu"});
复制代码


insertOne

往集合里添加一条数据,同insert
  1. db.collection.insertOne({"name": "mumu", age: 19});
复制代码


insertMany

往集合里一次性添加多条数据
  1. db.collection.insertMany([{"name": "张三", age: 20}, {"name": "李四", age: 21}, {"name": "王五", age: 22}]);
复制代码


查询操作

   mongosh中查询操作通过find()函数实现,下面介绍find的用法。
  无条件查询

  1. db.collection.find()
复制代码


带条件查询

  1. db.collection.find({"name": "mumu"})
复制代码


字段排序

  1. db.collection.find().sort(age: -1);
复制代码
例如,按照年龄降序排序,如果要升序则把-1改成1
  1. db.user.find().sort({age: -1});
复制代码
以上下令等价于MySQL中的
  1. select * from user order by age desc
复制代码


查询分页

查询前三个用户
  1. db.user.find().skip(0).limit(3)
复制代码
以上下令等价于MySQL中的
  1. select * from user limit 3
  2. select * from user limit 0, 3
复制代码


skip()和limit()可以单独使用,以下两条下令等价
  1. db.user.find().limit(3);
  2. db.user.find().skip(0).limit(3);
复制代码
跳过前两条数据
  1. db.user.find().skip(2);
复制代码


更多查询方式

以上的查询等价于
  1. db.collection.find({name: {$eq: "mumu"}})
复制代码

$eq是比较符,更多详情,请参考页面Query and Projection Operators — MongoDB Manual

更新操作

update

   这个下令的第三个参数是一个可选的选项
  

  • upsert:如果不存在update的记载,是否插入新的记载。默认false,不插入
  • multi:是否按条件查询出的多条记载全部更新。 默认false,只更新找到的第一条记载
  • writeConcern:决定一个写操作落到多少个节点上才算乐成。
  


updateOne

更新单条数据,好比文档ID为ObjectId("6526ffd80353355e5a66f7ab")的name修改为heyunlin
  1. db.collection.updateOne({_id: ObjectId("6526ffd80353355e5a66f7ab")}, {$set: { name: "heyunlin" }})
复制代码


updateMany

更新多条数据

replaceOne

替换一条数据

关于修改操作符,请参考官网
Update Operators — MongoDB Manual

删除操作

deleteOne

删除一条记载:
删除名字为张三的数据
  1. db.collection.delete({name: "张三"})
复制代码


deleteMany

1、无条件删除:
  1. db.collection.deleteMany()
复制代码
2、带条件删除:
删除名字为mumu中的数据
  1. db.collection.deleteMany({name: "mumu"})
复制代码


五、关闭MongoDB

关闭方式一

  1. bin/mongod --port=27017 --dbpath=/etc/mongodb/data --shutdown
复制代码


关闭方式二

  1. use admin
  2. db.shutdownServer()
复制代码

关闭方式三

通过kill进程来关闭
  1. ps -ef | grep mongodb
  2. kill PID
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连全瓷种植牙齿制作中心

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表