当前位置: 首页 > news >正文

MongoDB 从部署到掌握

一、docker部署MongoDB

## 通过docker安装MongoDB~~~shell
#拉取镜像
docker pull mongo:4.0.3#创建容器
docker create --name mongodb-server -p 27017:27017 -v mongodb-data:/data/db mongo:4.0.3 --auth#启动容器
docker start mongodb-server#进入容器
docker exec -it mongodb-server /bin/bash#进入admin数据库
mongo
use admin#添加管理员,其拥有管理用户和角色的权限
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "root", db: "admin" } ] })
#退出后进行认证#进行认证
mongo -u "root" -p "root" --authenticationDatabase "admin"#通过admin添加普通用户
use admin
db.createUser({ user: 'house', pwd: 'oudqBFGmGY8pU6WS', roles: [ { role: "readWrite", db: "house" } ] });#通过tanhua用户登录进行测试
mongo -u "house" -p "oudqBFGmGY8pU6WS" --authenticationDatabase "admin"#发现可以正常进入控制台进行操作

二、引入依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

三、在applicatino.yml中配置

spring.data.mongodb.username=house
spring.data.mongodb.password=oudqBFGmGY8pU6WS
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=house
spring.data.mongodb.port=27017
spring.data.mongodb.host=192.168.92.136
spring.data.mongodb.auto-index-creation=true

四、常用命令

4.1 数据库级别命令

  1. show dbs: 显示所有数据库
  2. db: 显示当前数据库
  3. use <db_name>: 切换到指定的数据库
  4. db.dropDatabase(): 删除当前数据库

4.2 集合级别命令

  1. show collections: 显示当前数据库中的所有集合
  2. db.createCollection(name, options): 创建一个新的集合
  3. db.<collection>.drop(): 删除指定的集合

4.3 文档级别命令

  1. db.<collection>.insert(doc): 插入一个文档
  2. db.<collection>.insertMany(docs): 插入多个文档
  3. db.<collection>.find(query): 查询文档
  4. db.<collection>.update(query, update, options): 更新文档
  5. db.<collection>.remove(query, justOne): 删除文档
  6. db.<collection>.findOne(query): 查询第一个文档
  7. db.<collection>.count(query): 计算集合中的文档数量

4.4 索引级别命令

  1. db.<collection>.createIndex(keys, options): 创建索引
  2. db.<collection>.dropIndex(indexName): 删除索引
  3. db.<collection>.getIndexes(): 获取集合的所有索引信息

4.5 聚合命令

db.<collection>.aggregate(pipeline): 对集合中的数据进行聚合操作

4.5.1 聚合管道阶段

  1. $match:过滤数据,只输出符合条件的文档。
  2. $group:将集合中的文档分组,可用于计算总和、平均数、最大值、最小值等。
  3. $sort:对输入的文档进行排序。
  4. $project:选择、添加或删除文档的字段。
  5. $limit:限制聚合管道返回的文档数。
  6. $skip:在聚合管道中跳过指定数量的文档。
  7. $unwind:将数组字段中的每个值拆分为一个文档。
  8. $lookup:用于执行左外连接,从其他集合中获取文档数据。
  9. $graphLookup:用于在聚合管道中执行图搜索。
  10. $bucket:将文档分配到指定的数量或范围内的“桶”中。
  11. $bucketAuto:根据指定的字段值自动创建“桶”。
  12. $replaceRoot:用指定的文档替换输入文档。
  13. $count:计算聚合管道中的文档数。

4.5.2 聚合操作

  1. $sum:计算总和。
  2. $avg:计算平均值。
  3. $min:获取最小值。
  4. $max:获取最大值。
  5. $first:获取第一个文档的字段值。
  6. $last:获取最后一个文档的字段值。
  7. $push:将值添加到一个数组中。
  8. $addToSet:将唯一的值添加到一个数组中。
  9. $concat:连接字符串。
  10. $substr:获取字符串的子字符串。
  11. $size:获取数组字段的大小。

4.6 其他命令

  1. db.getCollectionNames(): 获取当前数据库中所有集合的名称
  2. db.stats(): 获取数据库统计信息
  3. db.version(): 获取MongoDB服务器版本
  4. db.serverStatus(): 获取MongoDB服务器状态

http://www.lryc.cn/news/345556.html

相关文章:

  • electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法
  • 每日一练2024.5.9
  • P2622 关灯问题
  • 从头开始的建材类电商小程序开发指南
  • 数据结构中的栈(C语言版)
  • (贪心05) 无重叠区间 划分字母区间 合并区间
  • 简单网络管理协议(SNMP)入门
  • leetcode解题思路分析(一百五十七)1366 - 1372 题
  • 药物代谢动力学学习笔记
  • IDEA中git的常用操作(保姆级教学)
  • 保研面试408复习 3——操作系统
  • 【代码随想录37期】Day02 有序数组的平方、长度最小的子数组、螺旋矩阵Ⅱ(施工中)
  • 通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的
  • 基于Springboot的校运会管理系统(有报告)。Javaee项目,springboot项目。
  • USP技术提升大语言模型的零样本学习能力
  • 前端安全防护实战:XSS、CSRF防御与同源策略详解(react 案例)
  • 2024C题生物质和煤共热解问题的研究 详细思路
  • 智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务
  • 十.吊打面试官系列-Tomcat优化-通过压测Tomcat调优实战
  • JVM调优—减少FullGC
  • 力扣 256. 粉刷房子 LCR 091. 粉刷房子 python AC
  • C++STL细节,底层实现,面试题04
  • Linux查看Oracle数据库的环境变量
  • pg数据库学习知识要点分析-1
  • 【Web】CTFSHOW 七夕杯 题解
  • react native 设置屏幕锁定
  • 探索 IPv6 协议:互联网的新一代寻址
  • Ubuntu意外断电vmdk损坏--打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。
  • 202466读书笔记|《一天一首古诗词》——借问梅花何处落,风吹一夜满关山
  • 如何调用本地ollama的http请求接口