#MongoDB 快速上手
docker pull mongo
docker run -d --name my-mongo -p 27017:27017 mongo
docker exec -it my-mongo mongo
🚪进入 Mongo Shell 后的第一步
你进入后会看到类似提示符:
>
说明已经进入 Mongo Shell,现在就可以操作数据库了。
🧾 1. 查看当前数据库
db
默认是 test
数据库。
🗂️ 2. 查看所有数据库
show dbs
如果没有手动插入数据,有些数据库可能不会显示。
🧱 3. 创建 / 切换数据库
use mydb
🔸注意:MongoDB 会在你首次向这个库写入数据时才真正创建它。
📂 4. 创建集合(类似表)
db.createCollection("users")
不过你也可以直接插入文档,MongoDB 会自动创建集合:
db.users.insertOne({ name: "Lily", age: 24 })
插入的文档是会被插入到你当前所在的数据库中的集合 users 中
📥 5. 插入数据
插入单条文档:
db.users.insertOne({ name: "Nova", age: 22 })
插入多条文档:
db.users.insertMany([{ name: "Qianjue", age: 25 },{ name: "Luna", age: 30 }
])
🔍 6. 查询数据
查询全部:
db.users.find()
美化显示:
db.users.find().pretty()
查询条件:
db.users.find({ age: { $gt: 24 } }) // 查找 age > 24 的用户
✏️ 7. 更新数据
db.users.updateOne({ name: "Lily" },{ $set: { age: 26 } }
)
❌ 8. 删除数据
删除一条:
db.users.deleteOne({ name: "Lily" })
删除多条:
db.users.deleteMany({ age: { $lt: 25 } })
🧾 9. 查看集合列表
show collections
🔐 10. 创建用户(可用于认证)
如果你还没设置好权限模式,创建用户可以这样:
use admin
db.createUser({user: "myuser",pwd: "mypassword",roles: [ { role: "readWrite", db: "mydb" } ]
})
📌 总结:常用命令清单
操作 | 命令 |
---|---|
查看数据库 | show dbs |
切换数据库 | use dbname |
查看集合 | show collections |
插入文档 | insertOne / insertMany |
查询文档 | find() |
更新文档 | updateOne() / updateMany() |
删除文档 | deleteOne() / deleteMany() |
创建集合 | createCollection() |
创建用户 | db.createUser(...) |
🧠 你可以先练习上面这些基本操作,对 MongoDB 的“无模式”“JSON文档式结构”会有个感性认识。
MongoDB 创建用户命令
✅ 命令内容
use admindb.createUser({user: "myuser",pwd: "mypassword",roles: [ { role: "readWrite", db: "mydb" } ]
})
📖 一行一讲解
🔹 use admin
👉 表示切换到 admin
数据库。
MongoDB 的权限系统是和数据库绑定的,用户在哪个数据库下创建,就属于哪个数据库。
- 一般来说:
- 管理员账户建议放在
admin
数据库下(相当于超级管理员作用域) - 普通读写用户可以放在业务数据库下(如:
mydb
)
- 管理员账户建议放在
💡 举一反三:
use mydb // 如果你只想为 mydb 创建一个普通读写用户
🔹 db.createUser({...})
这是创建用户的标准命令,格式如下:
db.createUser({user: "<用户名>",pwd: "<密码>",roles: [ ... ]
})
✨ 参数详解:
参数名 | 含义 |
---|---|
user | 用户名 |
pwd | 密码 |
roles | 用户权限列表,支持多个权限组合 |
🔸 user: "myuser"
👉 创建的用户名是 "myuser"
。你登录 MongoDB 时就可以这样连接:
mongosh -u myuser -p mypassword --authenticationDatabase admin
🔸 pwd: "mypassword"
👉 用户密码,配合用户名一起登录用。
⚠️ 不建议用过于简单的密码,生产环境要强密码 + TLS 连接。
🔸 roles: [ { role: "readWrite", db: "mydb" } ]
👉 这个数组定义了 用户的权限角色,每个角色有两个部分:
字段 | 说明 |
---|---|
role | 角色名,比如 readWrite 、read 、dbAdmin 、root 等 |
db | 授权作用的数据库 |
这行的含义是:
给这个用户 myuser
,在 mydb
数据库上分配 readWrite
权限。
📚 常用权限角色参考表
角色名 | 权限说明 |
---|---|
read | 只读(查询数据) |
readWrite | 读写(增删改查) |
dbAdmin | 管理数据库结构(如建表、索引) |
userAdmin | 管理用户(创建、修改权限) |
root | 超级权限(所有数据库全部权限) |
🎯 举一反三案例
🌟 创建只读用户:
use mydb
db.createUser({user: "reader",pwd: "123456",roles: [ { role: "read", db: "mydb" } ]
})
🌟 创建多权限用户:
use admin
db.createUser({user: "adminuser",pwd: "adminpass",roles: [{ role: "readWrite", db: "mydb" },{ role: "dbAdmin", db: "mydb" },{ role: "userAdmin", db: "admin" }]
})
🌟 创建超级用户:
use admin
db.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]
})
🧠 总结理解图:
一个用户(user)└── 拥有多个角色(roles)└── 每个角色作用于某个数据库(db)└── 给定的权限类型(role: read / write / admin)
MongoDB 是基于 数据库级别的权限模型,不像 MySQL 那样跨库授权,权限是“在哪个库就对哪个库有效”。
相关文章:
#MongoDB 快速上手
docker pull mongo docker run -d --name my-mongo -p 27017:27017 mongo docker exec -it my-mongo mongo 🚪进入 Mongo Shell 后的第一步 你进入后会看到类似提示符: >说明已经进入 Mongo Shell,现在就可以操作数据库了。 …...
docker相关命令
常用命令 #创建并启动 docker-compose up -d # 启动之后就可以通过浏览器访问了 #停止并删除 docker-compose down #重启 docker-compose restart #停止 docker-compose stop #启动 docker-compose startdocker search #搜索镜像(只搜索官方仓库的,官方仓库地址&am…...
浅谈进程与程序的区别
如大家所了解的,进程与程序是有区别的。 下面做了一个总结,供大家参考、学习: 1. 程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义。进程是程序在 CPU 上的一次执行过程,是一个动态的概…...
redis 和 MongoDB都可以存储键值对,并且值可以是复杂json,用完整例子分别展示说明两者在存储json键值对上的使用对比
Redis 存储 JSON 键值对示例 存储操作: // 存储用户信息(键:user:1001,值:JSON对象) SET user:1001 {"name":"Alice", "age":30, "address":"New York&quo…...
基于chatgpt得到的生活成本计算
意大利的生活成本因城市而异,比如米兰和罗马相对较贵,而南部城市如那不勒斯或巴勒莫则便宜一些。下面是意大利大致的基本生活成本和费用明细(以欧元€为单位,2025年初数据为基础,具体数值可能随时间和汇率略有变化&…...
C和C++有什么区别?
C和C是两种不同的编程语言,虽然它们有许多相似之处,但也存在一些关键的区别。 C是一种过程化编程语言,专注于函数和流程控制,非常适合系统级编程。而 C是一种面向对象编程语言,支持类、对象和封装、继承、多态等特性。…...
力扣1338 === 贪心算法解决数组减半问题
目录 问题分析 方法思路:贪心算法 步骤分解 代码解释 复杂度分析 正确性证明 示例验证 边界情况 总结 要解决这个问题,我们需要找到最少需要删除的不同整数集合,使得剩余的元素个数不超过原数组的一半。以下是对该问题的详细分析和解…...
企业知识库如何搭建?应对高频咨询的AI自助问答系统
在客户服务和内部沟通中,“同样的问题被反复问”、“信息找不到”、“新员工上手慢”等现象屡见不鲜。为了提升企业运营效率,越来越多企业开始重视知识库建设,而“企业知识库如何搭建”也成为热门话题。 尤其在AI技术快速发展的今天…...
UE5学习笔记 FPS游戏制作44 统一UI大小 sizeBox
如果我们希望多个类似的UI大小一样,例如不同菜单的标题,可以使用sizeBox组件 我们在标题控件上,用sizeBox包裹所有子物体 然后指定他的最小宽高,或最大宽高 如果指定的是最小宽高,当子元素(如图片…...
SpringAOP新链浅析
前言 在复现CCSSSC软件攻防赛的时候发现需要打SpringAOP链子,于是跟着前人的文章自己动手调试了一下 参考了大佬的文章 https://gsbp0.github.io/post/springaop/#%E6%B5%81%E7%A8%8B https://mp.weixin.qq.com/s/oQ1mFohc332v8U1yA7RaMQ 正文 依赖于Spring-AO…...
高效网页截图利器:支持长截图、异步加载内容截图、API调用、Docker一键部署!
一、简介 利用playwright自动化工具,模拟浏览器打开网页,实现完整网页截图功能支持长截图,支持异步加载动态渲染内容截图支持docker一键部署支持API调用项目地址:https://github.com/luler/hello_screenshot 二、安装 提前安装好d…...
处理语言模型返回的响应
completion.choices[0].message.content 是在处理语言模型(如 OpenAI 的 GPT 系列)返回的响应时,用于 访问模型生成的文本内容的代码路径。为了更好地理解它,我们需要先了解语言模型响应的结构。 1. 响应的结构 当使用语言模型&…...
Go语言类型捕获及内存大小判断
代码如下: 类型捕获可使用:reflect.TypeOf(),fmt.Printf在的%T。 内存大小判断:len(),unsafe.Sizeof。 package mainimport ("fmt""unsafe""reflect" )func main(){var i , j 1, 2f…...
Java 大视界 -- Java 大数据机器学习模型在智能客服多轮对话系统中的优化策略(179)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
CAS号:288574-78-7,Zinpyr-1可用作PET传感器
试剂描述: Zinpyr-1(ZP-1)是一种具细胞膜渗透性的荧光探针,选择性检测锌离子(Zn2)(Kd 0.7 0.1 nM)。一旦与金属离子复合,诱发荧光信号产生。活细胞内,Zinpyr…...
【JVM调优实战指南:从案例分析到性能优化】
一、JVM 调优核心原则 JVM 调优旨在平衡系统的吞吐量、延迟和内存使用。在进行 JVM 调优时,我们可以遵循以下原则: 先优化代码:优先排查业务逻辑中的内存泄漏、对象滥用等问题。优化代码不仅能从根本上解决性能问题,还能减少对 J…...
交换机转发原理 和 DNS服务
1. 收到报文后,将其转换为二进制,并记录在缓存当中 2. 根据二进制中的源 MAC 地址,与接收报文的接口,记录对应关系,在 MAC 地址表中,每个动态表项 300S 老化时间。 3. 判断 如果目的 MAC 是组播或广…...
强化学习Q-Learning:DQN
强化学习Q-Learning/DQN 本文是一篇学习笔记,主要参考李宏毅老师的强化学习课程。 目前主流的强化学习方法大致可以分为 policy-based 和 value-based 两大类。之前我们介绍的 policy gradient 策略梯度,就是 policy-based 的方法。本文要介绍的 Q-learn…...
OpenCv(七)——模板匹配、打包、图像的旋转
目录 一、模板匹配 模板匹配原理 1、单模板之间的匹配 (1)读取并显示待匹配的图片和模板图片 (2)模板匹配并绘制匹配位置的外接矩形 (3)显示最终的效果 2、模板与多个对象匹配,仅匹配当前…...
汽车售后诊断 ODX 和 OTX 对比分析报告
一、引言 在汽车行业不断发展的当下,汽车售后诊断技术对于保障车辆性能、维护车主权益以及提升汽车品牌服务质量起着至关重要的作用。随着汽车电子化程度的不断提高,售后诊断所涉及的数据和流程愈发复杂,这就促使行业需要更加标准化、高效化…...
关于图卷积
深入理解神经网络中的图卷积 一、为什么需要图卷积(动机) 在图结构中,比如: 社交网络(节点是人,边是朋友关系)分子结构(节点是原子,边是化学键)知识图谱&a…...
Meta LLaMA 4:对抗 GPT-4o 与 Claude 的开源王牌
2025 年 4 月,Meta 正式发布了 LLaMA 4 系列的首批两款模型。 这两款模型模型分别是:LLaMA 4 Scout 与 LLaMA 4 Maverick,均采用了 专家混合架构(Mixture-of-Experts, MoE)。 据 Meta 表示,这是首次有 …...
如何进行SQL调优
如何进行SQL调优 SQL 调优是优化数据库查询性能的过程,目的是减少查询的执行时间,提高数据库系统的整体效率。SQL 调优的技巧和方法可以针对不同的数据库管理系统(DBMS)有所不同,但基本的原则和步骤是相似的。以下是一…...
WAF防护规则配置技巧与企业级安全实践指南
面对日益复杂的Web应用攻击,WAF规则配置直接决定防护体系的有效性。本文深度解析规则优先级编排、误报消减策略、智能学习机制等17项关键技术,结合金融行业API攻击案例与Gartner最新防御框架,为企业提供可落地的WAF优化路径。 WAF规则引擎的…...
第16届蓝桥杯单片机模拟试题Ⅱ
试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //ds1302.c extern unsigned char time[3]; void w_ds1302(); void r_ds1302(); //iic.c float v_adc(unsigned char addr); //sys.c extern float light_v; extern float rb2_v; exte…...
机器学习——ROC曲线、PR曲线
一、ROC曲线简介 1.1 ROC曲线的构成 1.横轴(假正率,FPR): 表示负样本被错误分类为正的比例(越小越好) 2.纵轴(真正率,TPR,即召回率): 表示正样…...
Flutter之交互事件
目录: 1、点击事件标准案例1.1、效果图2.1、代码实现 1、点击事件标准案例 1.1、效果图 2.1、代码实现 class FavoriteWidget extends StatefulWidget {const FavoriteWidget({super.key});overrideState<FavoriteWidget> createState() > _FavoriteWidge…...
深入解析Spring Boot自动装配:原理、设计与最佳实践
引言 Spring Boot作为现代Java开发中的一股清流,凭借其简洁、快速和高效的特性,迅速赢得了广大开发者的青睐。而在Spring Boot的众多特性中,自动装载(Auto-configuration)无疑是最为耀眼的明珠之一。本文将深入剖析Sp…...
【责任链】模式解决流程中多个接口的流程问题
业务需求 整体流程有5步骤,每个步骤调用一个接口,每个接口成功才能进行下一步。如a->b->c->d->e, 比如入学报到 a:报班,根据名字生成学号uid b:根据学号分配班级获取班级编号cid c:…...
excel常见错误包括(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! )
目录 1. #N/A2. #VALUE!3. #REF!4. #DIV/0!5. #NUM!6. #NAME?7. #NULL!8.图表总结 在 Excel 中,可能会遇到以下常见的错误值,每个都有特定的含义和成因: 1. #N/A 含义: 表示“Not Available”(不可用)。…...
【湖南大学】2025我们该如何看待DeepSeek
大家好,我是樱木。 DeepSeek 官方网站:https://www.deepseek.com/ 一、DeepSeek 到底是什么? TA 到底厉害在哪里? 故事从 ChatGPT 说起 去年我们看到 Open AI 发布ChatGPT 后,全球的注意力到了 AI 身上。 我们来拆…...
RAG中构建个人知识库
1. 添加本地模型 1.1 查看本地模型 ollama list1.2 ragflow添加本地模型 1.3 系统模型配置 2. 构建知识库 2.1 准备知识库素材 2.2 配置知识库 2.3 知识库绑定素材文件 上传文件素材 - 解析文件 3. 构建交互系统 3.1 配置助理 3.2 完善提示词 3.3 设置模型参数 4. 体验效…...
在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别
在 Kubernetes (k8s) 中,apiserver 的 IIP(Internal IP) 和 VIP(Virtual IP) 是与集群网络通信和高可用性设计相关的两个重要概念。 IIP(Internal IP) 定义: IIP 是 apiserver 所在…...
OpenCV--图像形态学
在图像处理领域,图像形态学是一种基于形状进行图像分析的有力工具,广泛应用于图像分割、特征提取、边缘检测、图像降噪等多个方面。借助 OpenCV 这个强大的计算机视觉库,我们可以轻松实现各种图像形态学操作。本文将深入探讨图像形态学的基本…...
智慧医疗数据集
WiNGPT2 更新时间:2024-11-29 访问地址: GitHub 描述: WiNGPT是一个基于GPT的医疗垂直领域大模型,旨在将专业的医学知识、医疗信息、数据融会贯通,为医疗行业提供智能化的医疗问答、诊断支持和医学知识等信息服务,…...
3D激光轮廓仪知识整理(待补充)
文章目录 1.原理和应用场景1.1 相机原理1.1.1 测量原理1.1.2 相机激光器1.1.3 沙姆镜头1.1.4 相机标定1.1.5 中心线提取 1.2 应用场景1.2.1 测量相关应用1.2.2 缺陷检测相关易用 2.相机参数介绍及选型介绍2.1 成像原理2.2 原始图成像2.3 生成轮廓图2.4 相机规格参数2.4.1 单轮廓…...
算法思想之双指针
文章目录 双指针字符串序列判定字符串所有整数最小和服务交换接口失败率分析分披萨最多团队 双指针 双指针是指在解决问题时使用两个指针,通常分别指向数组或字符串中的不同位置,通过移动这两个指针来解决问题的一种技巧。双指针技巧常用于解决数组、链…...
Windows环境下PyCharm 配置miniforge
问题描述. 目前Anconda python 环境管理软件,已非常臃肿。为了替代该软件,可以使用miniforge软件来代替。 1. 安装windows miniforge软件 (1) 下载网站:https://github.com/conda-forge/miniforge?tabreadme-ov-file 从网址下载ÿ…...
C语言基础18
内容提要 构造类型 结构体 共用体/联合体 枚举 typedef 构造类型 数据类型 基本类型/基础类型 整型 短整型:short [int] -- 2字节 基本整型:int -- 4字节 长整型:long [int] -- 32位4字节/64位8字节 长长整型:long long…...
Docker部署Jenkins服务
文章目录 1.下载Jenkins服务2.部署Java21(可选)2.1 安装Java21 3.Maven3.9.9安装4.启动Jenkins5.初始化Jenkins5.1 入门5.2 安装推荐的插件5.3 创建第一个管理员用户5.4 实例配置5.5 Jenkins已就绪5.6 开始使用Jenkins5.7 重启Jenkins 6.配置Jenkins6.1 …...
【题解-Acwing】798. 差分矩阵
题目:798. 差分矩阵 题目描述 输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1)和 (x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加…...
linux环境下的硬盘分区格式化工具介绍 fdisk,gdisk,parted,cfdisk,cgdisk,sfdisk,gparted 笔记250407
linux环境下的硬盘分区格式化工具介绍 fdisk,gdisk,parted,cfdisk,cgdisk,sfdisk,gparted 笔记250407 以下是 Linux 系统中常用的 硬盘分区与格式化工具,涵盖命令行和图形界面工具,按功能分类整理: 一、分区管理工具 1. 命令行工具 工具功能…...
Ubuntu 24.04 LTS系统安装RTX 4090显卡驱动和cuda并部署ollama下载DeepSeek模型【自用详细版】
自己捣鼓玩玩哈,正好有机子 1. 安装驱动前的系统配置工作 卸载原有驱动并禁用nouveau sudo apt remove --purge nvidia*sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.backup //备份文件sudo vim /etc/modprobe.d/blacklist.conf //修…...
FogFL: Fog-Assisted Federated Learning for Resource-Constrained IoT Devices
摘要 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 -在本文中,我们提出了一个支持雾的联邦学习框架–FogFL–来促进资源受限的物联网环境中延迟敏感应用的分布式学习。联邦学习(FL)是一种流行的分…...
音视频入门基础:RTCP专题(2)——RTCP协议简介(上)
一、引言 本文对RTCP协议进行简介。在简介之前,请各位先下载RTCP的官方文档《RFC 3550》。《RFC 3550》总共有89页。本文下面所说的“页数”是指在pdf阅读器中显示的页数: 二、RTCP协议简介 本段内容对应《RFC 3550》的第6节。根据《RFC 3550》第17页&…...
oklink js逆向(入口定位)
分析api请求,定位参数 X-Apikey 搜索关键字apikey,发现结果太多 结合搜索结果,搜索关键字 apikey(,只找到5个 断点后定位 可见使用了字符串混淆,所以搜索不到 x-apikey 还可以通过搜索 headers,追踪调用栈的…...
go原子操作和锁的区别是什么?
在Go语言中,原子操作和锁都是用于实现并发编程的同步机制,但它们的工作方式和适用场景有所不同。下面是它们的主要区别: 1. 原子操作(Atomic Operations) 定义:原子操作是一种不可分割的操作,…...
QtConcurrent
以下是 QtConcurrent 的一些常见用法示例: QtConcurrent::run QtConcurrent::run 是最常用的函数,用于在单独的线程中运行一个函数。 运行普通函数 #include <QtConcurrent> #include <QDebug> #include <QThread>void myFunction…...
Git 仓库在内网与 Gitee 间迁移及同步记录
Git 仓库在内网与 Gitee 间迁移及同步记录 在软件开发过程中,常常会遇到需要将代码仓库进行迁移或同步的情况。近期我就碰到了要把 Gitee 代码仓库移植到内网代码仓库,并且后续还得进行同步的需求。这里把整个过程记录下来,方便以后自己参考…...
如何保证mysql和redis的数据一致性
保证 MySQL 和 Redis 的数据一致性是分布式系统中常见的挑战,因为 Redis 作为缓存层,可能存在与底层数据库数据不一致的情况。以下是几种常用的方案及其优缺点对比: 1. 缓存更新策略 (1) Cache-Aside Pattern(旁路缓存模式&#…...