当前位置: 代码网 > it编程>编程语言>Javascript > Ubuntu上安装、使用MongoDB详细教程

Ubuntu上安装、使用MongoDB详细教程

2024年08月02日 Javascript 我要评论
MongoDB是所有非关系型数据库中最像关系型数据库的一种存储技术,MongoDB中的数据结构是类似于JSON的BSON(Binary Json),这篇文章就详细介绍如何安装和使用MongoDB。

mongodb简单介绍

mongodb和mysql中的概念对应关系

mongodbmysql
数据库数据库
表/集合
索引索引
文档表的行数据

一、下载mongodb

在mongodb官网下载对应的mongodb版本,可以点击以下链接快速跳转到下载页面:

https://www.mongodb.com/try/download/communityicon-default.png?t=n7t8https://www.mongodb.com/try/download/community如图,页面往下滚动,点击选择安装包

然后根据情况选择对应的选项,博主的ubuntu操作系统是ubuntu-22.04.3版本,所以下载的是对应最新的ubuntu 22.04 x64的安装包。

下载完成后,通过finalshell上传到虚拟机上,比如usr目录,然后解压:

tar -zxvf mongodb-linux-x86_64-ubuntu2204-6.0.11.tgz

至此,ubuntu上mongodb的安装工作就完成了。

二、启动mongodb

准备工作

首先,创建mongodb要使用的目录和文件

mkdir -p /etc/mongodb/data /etc/mongodb/log /etc/mongodb/conf
touch /etc/mongodb/conf/mongodb.conf

启动方式一

通过以下命令启动

bin/mongod --port=27017 --dbpath=/etc/mongodb/data --logpath=/etc/mongodb/log/mongodb.log --bind_ip=0.0.0.0 --fork

启动参数说明

启动方式二

通过配置文件启动,修改/etc/mongodb/conf/mongodb.conf的内容

systemlog:
  destination: file
  path: /etc/mongodb/log/mongodb.log
  logappend: true
storage:
  dbpath: /etc/mongodb/data
  engine: wiredtiger
  journal:
    enabled: true
net:
  bindip: 0.0.0.0
  port: 27017
processmanagement:
  fork: true

 然后通过以下命令启动mongodb

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目录,然后解压

tar -zxvf mongosh-2.0.1-linux-x64.tgz

启动mongosh:切换到mongosh安装目录,通过bin/mongosh启动

四、使用mongodb shell

接着,点击右下角的三个点,在现实的下拉菜单点击documentation

点击左边菜单中的run commands,然后根据文档学习mongosh的命令使用。

接下来介绍mongosh的一些常用的命令

 执行javascript脚本

load("xxx.js")

在opt目录下创建文件index.js,文件内容如下:

let result = db.user.find();

console.log(result);

然后加载index.js

load("/opt/index.js")

用户操作

 查看所有用户

show users

创建用户

创建用户需要使用管理员权限,操作之前必须切换到admin数据库

use admin

db.createuser({user: 用户名, pwd: 密码, roles: [角色列表]});

数据库操作

切换数据库

use db_name

比如切换到mongo数据库,如果该数据库不存在,会自动创建

删除数据库

db.dropdatabase()

显示当前数据库

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

查看所有数据库

show dbs
show databases

查看数据库版本

查看数据库版本,也就是mongodb的版本

db.version()

集合操作

创建集合

db.createcollection(name, options)

一般不需要使用这个命令,因为在往集合里添加数据时,如果集合不存在会自动创建

options参数的可选值

参数
说明
capped是否固定集合大小,设置为true时,当集合元素达到设定的值时会覆盖最老的数据
size设置集合数据大小
max
指定固定集合中最大文档数量

 删除集合

db.collection_name.drop()

删除集合collection

查看当前数据库所有集合

show collections

文档操作

添加操作

insert

往集合里添加一条数据

db.collection.insert({"name": "mumu"});

insertone

往集合里添加一条数据,同insert

db.collection.insertone({"name": "mumu", age: 19});

insertmany

往集合里一次性添加多条数据

db.collection.insertmany([{"name": "张三", age: 20}, {"name": "李四", age: 21}, {"name": "王五", age: 22}]);

查询操作

无条件查询
db.collection.find()

带条件查询
db.collection.find({"name": "mumu"})

字段排序
db.collection.find().sort(age: -1);

例如,按照年龄降序排序,如果要升序则把-1改成1

db.user.find().sort({age: -1});

以上命令等价于mysql中的

select * from user order by age desc

查询分页

查询前三个用户

db.user.find().skip(0).limit(3)

以上命令等价于mysql中的

select * from user limit 3
select * from user limit 0, 3

skip()和limit()可以单独使用,以下两条命令等价

db.user.find().limit(3);

db.user.find().skip(0).limit(3);

跳过前两条数据

db.user.find().skip(2);

更多查询方式

以上的查询等价于

db.collection.find({name: {$eq: "mumu"}})

$eq是比较符,更多详情,请参考页面query and projection operators — mongodb manual

更新操作

update

updateone

更新单条数据,比如文档id为objectid("6526ffd80353355e5a66f7ab")的name修改为heyunlin

 db.collection.updateone({_id: objectid("6526ffd80353355e5a66f7ab")}, {$set: { name: "heyunlin" }})

updatemany

更新多条数据

replaceone

替换一条数据

关于修改操作符,请参考官网

update operators — mongodb manual

删除操作

deleteone

删除一条记录:

删除名字为张三的数据

db.collection.delete({name: "张三"})

deletemany

1、无条件删除:

db.collection.deletemany()

2、带条件删除:

删除名字为mumu中的数据

db.collection.deletemany({name: "mumu"})

五、关闭mongodb

关闭方式一

bin/mongod --port=27017 --dbpath=/etc/mongodb/data --shutdown

关闭方式二

use admin

db.shutdownserver()

关闭方式三

通过kill进程来关闭

ps -ef | grep mongodb

kill pid

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com