一、mongodb的安装
要在 CentOS 上安装最新版本的 MongoDB,可以按照以下步骤进行
- 设置 MongoDB 存储库:
首先,创建一个 .repo 文件来设置 MongoDB 的官方存储库。以 MongoDB 6.0 为例(确保在 MongoDB 官方网站上检查最新版本的存储库 URL)
在文件中添加以下内容(以 MongoDB 7.0 为例):sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
- 安装 MongoDB:
使用 yum 命令安装 MongoDBsudo yum install -y mongodb-org
- 启动 MongoDB 服务:
安装完成后,启动 MongoDB 服务并使其在系统启动时自动启动sudo systemctl start mongod sudo systemctl enable mongod
- 检查 MongoDB 服务状态:
确认 MongoDB 服务已经成功启动sudo systemctl status mongod
- 配置防火墙(可选):
如果您使用防火墙,可能需要开放 MongoDB 的默认端口 27017sudo firewall-cmd --add-port=27017/tcp --permanent sudo firewall-cmd --reload
- 连接 MongoDB:
使用 MongoDB shell 连接到 MongoDB 实例/usr/bin/mongosh
mongosh "mongodb://ip:port" mongosh ip:port/数据库 -u 用户名 -p 密码 mongosh -u 用户名 -p 密码 --port 端口号 --host ip 数据库名
为了在 Ubuntu 上安装最新版本的 MongoDB,可以按照以下步骤进行:
- 导入 MongoDB 公共 GPG 密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add - 新版:wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/mongodb-org-7.0.asc
- 创建一个 MongoDB 列表文件:
根据您的 Ubuntu 版本创建相应的列表文件。以 MongoDB 7.0 为例(确保在 MongoDB 官方网站上检查最新版本的存储库 URLecho "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
- 更新本地包数据库:
sudo apt-get update
- 安装 MongoDB:
sudo apt-get install -y mongodb-org
- 启动 MongoDB 服务
安装完成后,启动 MongoDB 服务并使其在系统启动时自动启动。sudo systemctl start mongod sudo systemctl enable mongod
- 检查 MongoDB 服务状态:确认 MongoDB 服务已经成功启动
sudo systemctl status mongod
- 连接 MongoDB:
使用 MongoDB shell 连接到 MongoDB 实例。/usr/bin/mongosh
mongosh "mongodb://ip:port" mongosh ip:port/数据库 -u 用户名 -p 密码 mongosh -u 用户名 -p 密码 --port 端口号 --host ip 数据库名
使用索引可以提升查询速度,提升数据库查询的性能
索引的优点点与缺点:
优点:提高数据的查询速度
缺点:牺牲了数据库的插入和更新速度
如何查看语句执行情况
在执行语句之后追加explain(),并且提供参数executionStats
db.colname.find(query).explain(‘executionStats’)
索引的相关操作
查看已存在的索引
db.colname.getIndexes()
索引创建的规则:
①创建索引使用的文档中键为设置索引的字段,值为1表示索引按照升序存储,值为-1则表示索引按照降序存储
②当有大量数据时,创建索引会非常缓慢,因此可以后台创建索引,在创建索引的时候添加{background:true}
单一索引
db.colname.ensureIndex({key:1},{background:true})
联合索引
db.colname.ensureIndex({key1:1,key2:1})
创建联合索引之后,可以使用key1或者key1,key2的查询进行查找
唯一索引
db.colname.ensureIndex({key:1},{“unique”:true})
注意事项:
①当创建一个key为唯一索引时,新插入的数据如果key的值与已存在的数据相同,则会报错。
②当对已存在数据的集合创建唯一索引时,可能会因为重复,导致创建不成功,使用dropDups可以删除重复文档
db.colname.ensureIndex({key:1},{“unique”:true,”dropDups”:true})
查询时强制使用索引
db.colname.find({key1:value}).hint(索引文档)
删除索引
db.colname.dropIndex({key:1})
索引与全表扫描的对比选择
alias _id Causing Casting issues with fastapi