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.mfbz.cn/a/610074.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实现C++ Vector

手写C Vector&#xff0c;参考QVector 类声明 template<typename T >class IteratorVector;template<typename T >class IteratorVectorConst;template<typename T >class Vector final :public ContainerBase{public:explicit Vector()noexcept;explicit V…

如何使用Reqable脚本功能提高API开发效率

Reqable支持使用Python脚本对API开发和调试进行辅助&#xff0c;今天写一篇实战教程&#xff0c;由浅入深地演示下如何使用Reqable的脚本功能。 首先&#xff0c;电脑上需要安装Python软件包。一般情况下&#xff0c;系统都会预安装Python软件包&#xff0c;如果系统没有安装或…

大语言模型LLM应用篇

大模型席卷全球&#xff0c;彷佛得模型者得天下。对于IT行业来说&#xff0c;以后可能没有各种软件了&#xff0c;只有各种各样的智体&#xff08;Agent&#xff09;调用各种各样的API。在这种大势下&#xff0c;笔者也阅读了很多大模型相关的资料&#xff0c;和很多新手一样&a…

升级到 AGP7+,适配 assets 目录了吗

我们知道 assets 文件处理的任务是 merge[变体名称]ReleaseAssets&#xff0c;例如&#xff1a; mergeCommonReleaseAssetsmergeReleaseAssetsmergeDebugAssets 在 AGP 升级过程中&#xff0c;不同的 Android Gradle Plugin 版本打包过程中处理 assets 文件的临时目录可能存在…

[笔试训练](十七)

目录 049:小乐乐改数字 050:十字爆破 051:比那名局的桃子 049:小乐乐改数字 小乐乐改数字_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 把输入的数字当成字符串&#xff0c;按字符一个一个读&#xff0c;边读边按条件改成字符0或1。 #include &l…

2024 年 数维杯(A题)大学生数学建模挑战赛 | 多源机会信号建模| 数学建模完整代码+建模过程全解全析

2024数维杯数学建模A题B题C题思路模型代码&#xff08;开赛后第一时间更新&#xff09;及时留意关注哦 https://mbd.pub/o/bread/ZpWakpdq https://mbd.pub/o/bread/ZpWakpdq 2024数维杯数学建模A题B题C题思路模型代码&#xff08;开赛后第一时间更新&#xff09;及时留意关注…

每周一算法:无向图的最小环

题目链接 观光之旅 题目描述 给定一张无向图&#xff0c;求图中一个至少包含 3 3 3 个点的环&#xff0c;环上的节点不重复&#xff0c;并且环上的边的长度之和最小。 该问题称为无向图的最小环问题。 你需要输出最小环的方案&#xff0c;若最小环不唯一&#xff0c;输出…

SG3225EEN在PAM4光模块和400G,QSFP-DD光模块中的应用

爱普生晶振SG3225EEN&#xff0c;156.25MHz在PAM4光模块和QSFP-DD光模块中的应用。光模块市场已发展至400G光模块&#xff0c;那么PAM4光模块和400G QSFPDD光模块有哪些区别呢?SG3225EEN又是怎么应用在PAM4光模块和QSFP-DD光模块中的呢? 首先介绍的是PAM4光模块:PAM4是PAM(脉…

android基础-服务

同样使用intent来传递服务 oncreate是服务第一次启动调用&#xff0c;onStartCommand是服务每次启动的时候调用&#xff0c;也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。 服务生命周期 前台服务类似于通知会…

「ETL实战」搭建数仓,解决多源业务系统关联分析难题(定制化业务)

在大数据分析盛行的今天&#xff0c;关联分析作为数据挖掘和业务洞察的重要手段&#xff0c;受到了极大关注。然而&#xff0c;随着数据量的激增和源业务系统的复杂性增加&#xff0c;关联分析的性能问题逐渐成为了一个不可忽视的挑战。 本文将介绍借助ETL工具&#xff0c;如何…

Go 语言基础之常用包【flag、time、strconv、io】

1、命令行参数包 flag flag 包就是一个用来解析命令行参数的工具。 1.1、os.Args import ("fmt""os" )func main() {if len(os.Args) > 0 {for index, arg : range os.Args {fmt.Printf("args[%d]%v\n", index, arg)}} } 运行结果&#…

Windows程序设计课程作业-2(音乐文件播放功能)

目录 1、作业内容 要求1&#xff1a; 提示&#xff1a; 要求2&#xff1a; 提示&#xff1a; 作业提交方式: 2、主要思路 1&#xff09;准备工作 2&#xff09;提取音乐文件功能 3&#xff09;选择音乐进行播放 4&#xff09;异常信息进行处理 5&#xff09;停止播…

【最新点云数据增强综述】深度学习点云数据增强技术的进展

深度学习(DL)已成为点云分析任务(如检测、分割和分类)的主流和有效方法之一。为了减少深度学习模型训练过程中的过拟合,提高模型性能,尤其是在训练数据的数量和/或多样性有限的情况下,增强往往至关重要。虽然各种点云数据增强方法已被广泛应用于不同的点云处理任务中,但…

[muduo网络库]——muduo库的Reactor模型(剖析muduo网络库核心部分、设计思想)

一、前言 在学习 C 服务端的过程中&#xff0c;必不可少的一项就是熟悉一个网络库&#xff0c;包括网络库的应用和其底层实现。我们熟知的网络库有 libevent、libev、muduo、Netty 等&#xff0c;其中 muduo 是由陈硕大佬个人开发的 TCP 网络库&#xff0c;最近跟着课程正在深…

Springboot+Vue项目-基于Java+MySQL的车辆管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

Java方法和数组

方法 Java中的方法就是c语言中的函数。 方法的定义 定义格式如下 修饰符 返回值 方法名([参数列表]){代码块[return 返回值;] } //方括号[]括起来代表可以没有&#xff0c;不是必须有的方法名采用小驼峰命名&#xff08;就是有多个单词&#xff0c;第一个单词首字母小写其…

Redis学习1——redis简介、基础

介绍 redis简介 Redis(Remote Dictonary Server) 是由Salvatore Sanfilippo开发的key-value缓存数据库&#xff0c;基于C语言开发。目前市面上&#xff0c;Redis和MongoDB是当前使用最广泛的NoSQL&#xff0c;而就Redis技术而言&#xff0c;它的性能十分优越&#xff0c;可以…

回溯法、全排列、子集等

回溯法 感想&#xff1a;回溯算法本质是一个循环&#xff0c;有点像while循环 一些回溯法&#xff08;递归&#xff09;的经典应用 1.全排列 2.子集 其实上面两个点&#xff0c;也是对应着高中数学里面的“排列”与“组合” 1.全排列问题 给定一个集合S{a,b,c}&#xff0…

mysql数据库标识符的使用

ddl CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

crmeb的分销推广如何用

CRMBE分销推广说明 1、CRMEB分销模式 分销模式&#xff1a; 指定分销、人人分销、满额分销 指定分销&#xff1a; 用户默认无分销权限&#xff0c;需要后台开通分销权限后&#xff0c;才可以通过推广下级获得返佣&#xff1b; 人人分销&#xff1a; 用户在商城注册后自动获得分…