Linux 环境“从零”部署 MongoDB 6.0:mongosh 安装与数据操作全攻略
前提
完成linux平台部署MongoDB【部署教程】且完成mongosh的安装
由于本人使用的是6.0版本的MongoDB,新版本 MongoDB(尤其是 6.0 及以上版本)已经不再默认捆绑传统的 mongo shell,而改用新的 MongoDB Shell(mongosh)。
但有时即便是 mongosh,也需要单独下载和安装,而不会直接出现在 bin 目录下。
本人该版本是没有mongosh的,故自己安装实现的,步骤如下:
mongosh 命令行下载
#下载命令行工具 mongosh
wget https://downloads.mongodb.com/compass/mongosh-2.0.1-linux-x64.tgz
#解压命令行mongosh工具
tar -zxf mongosh-2.0.1-linux-x64.tgz -C /opt/module/mongodb_demo/mongodb/standalone
cd /opt/module/mongodb_demo/mongodb/standalone/mongosh-2.0.1-linux-x64/bin
cp mongosh /usr/local/bin/ #复制到全局变量中,这样就可以任意位置运行mongosh
配置好后启动好mongodb后运行mongosh命令

出现以上显示 就成功啦!
接下来就介绍相关操作命令嘞
1.创建数据库mydb,并给指定的集合添加文档
use mydb #使用mydb数据库
db.createCollection("xxx") #自定义集合名称 (1)用insert()向集合中添加:_id为1001,姓名为张三,年龄为20的文档。

(2)用insert()向集合中添加:姓名为赵四,年龄为40岁的文档。

(3)用save()向集合中添加:姓名为赵四,年龄为20岁的文档。
在 MongoDB 4.x 版本及以后的版本中,save() 方法已经被弃用,取而代之的是 insertOne() 和 insertMany() 方法。原本save重复插入文档会自动更新,insert重复插入会报错
当使用save()方法时,会报错 TypeError: db.wurui.save is not a function 。

(4)查询各自集合中的内容。-->find()函数

(5)用insert()向集合中添加:_id为1001,姓名为李白,年龄为30的文档。

(6)用save()向集合中添加:_id为1001,姓名为李白,年龄为30的文档。改为insertOne()

2.查找文档
(1).查找集合中姓名为赵四的文档。

(2).查找集合中姓名为赵四,年龄为40的文档。

(3).使用命令查找集合的第一条记录。
db.wurui.findOne() 
(4).查询集合中的所有内容。

3.删除文档
(1).使用命令删除集合中姓名为赵四的文档。

(2).删除集合中所有文档。

4.更新数据库
(1)数据准备,新建user集合并插入以下内容:



- 将users集合中姓名为方世玉的名字修改为洪七公,college改为安理工。
db.users.update ({ name: "方世玉" },{ $set: { name: "洪七公", college: "安理工" } }
) 
2.将年龄为32岁的所有记录的college改为清华大学。

5.使用mongodb的MapReduce函数
(1)考虑以下文档结构存储用户的文章,文档存储了用户的 user_name 和文章的 status 字段:
>db.XXX.insert({
"post_text": "纸上得来终觉浅,绝知此事要躬行。",
"user_name": "Jerry",
"status":"active"
})
>db.XXX.insert({
"post_text": "读书不觉已春深,一寸光阴一寸金。",
"user_name": "Jerry",
"status":"active"
})
>db.XXX.insert({
"post_text": "天生我材必有用,千金散尽还复来。",
"user_name": "Jerry",
"status":"active"
})
>db.XXX.insert({
"post_text": "世上无难事,只怕不专心。",
"user_name": "Jerry",
"status":"active"
})
>db.XXX.insert({
"post_text": "穷则独善其身,达则兼济天下。",
"user_name": "Jerry",
"status":"disabled"
})
>db.XXX.insert({
"post_text": "博学之,审问之,慎思之,明辨之,笃行之。",
"user_name": "Tom",
"status":"disabled"
})
>db.XXX.insert({
"post_text": "路漫漫其修远兮,吾将上下而求索。",
"user_name": "Tom",
"status":"disabled"
})
>db.XXX.insert({
"post_text": "夫君子之行,静以修身,俭以养德。",
"user_name": "Tom",
"status":"active"
})
(2)在XXX集合中使用 mapReduce 函数来选取已发布的文章(status:“active”),并通过user_name分组,计算每个用户的文章数。
(3)使用 find 操作符来查看 mapReduce 的查询结果。

(4)使用aggregate()计算每个用户的文章数。

6.使用管道操作符
- 建立文档:
订单表:
db.order.insert({"order_id":"1","uid":10,"trade_no":"111","all_price":100,"all_num":2})
db.order.insert({"order_id":"2","uid":7,"trade_no":"222","all_price":90,"all_num":2})
db.order.insert({"order_id":"3","uid":9,"trade_no":"333","all_price":20,"all_num":6})
订单商品表:
db.order_item.insert({"order_id":"1","title":"商品鼠标1","price":50,num:1})
db.order_item.insert({"order_id":"1","title":"商品键盘 2","price":50,num:1})
db.order_item.insert({"order_id":"1","title":"商品键盘 3","price":0,num:1})
db.order_item.insert({"order_id":"2","title":"牛奶","price":50,num:1})
db.order_item.insert({"order_id":"2","title":"酸奶","price":40,num:1})
db.order_item.insert({"order_id":"3","title":"矿泉水","price":2,num:5})
db.order_item.insert({"order_id":"3","title":"毛巾","price":10,num:1})
(1)要求查找集合order中的数据,只返回文档中trade_no和all_price字段。
db.order.aggregate([
... {$project:{_id:0,trade_no:1,all_price:1}}]) 
(2)要求查找集合order中的数据,只返回文档中trade_no和all_price字段,且过滤掉all_price小于90的数据。
db.order.aggregate([{$match:{all_price:{$gte:90}}},{$project:{_id:0,trade_no:1,all_price:1}}]) 
(3)统计每个订单下的商品总数量,按照订单号分组。

(4)要求查找集合order中的数据,只返回文档中trade_no和all_price字段,且过滤掉all_price小于90的数据,最后按照all_price进行降序排序,返回第一条数据

相关文章:
Linux 环境“从零”部署 MongoDB 6.0:mongosh 安装与数据操作全攻略
前提 完成linux平台部署MongoDB【部署教程】且完成mongosh的安装 由于本人使用的是6.0版本的MongoDB,新版本 MongoDB(尤其是 6.0 及以上版本)已经不再默认捆绑传统的 mongo shell,而改用新的 MongoDB Shell(mongosh&am…...
深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析
# 深度学习五虎将:当CNN遇见Transformer的奇幻漂流 ## 序章:AI江湖的兵器谱排行 2012年,多伦多大学的厨房里,Hinton的学生们用GPU煎了个"AlexNet"荷包蛋,从此开启了深度学习的热兵器时代。如今五大模型各显…...
004 rocketmq集群
1、集群模式 在RocketMQ中,集群的部署模式是比较多的,有以下几种: public class ConsumerDemo {public static void main(String[] args) throws Exception {DefaultMQPushConsumer consumer new DefaultMQPushConsumer("test-group&qu…...
基于 Python 深度学习的电影评论情感分析可视化系统(2.0 全新升级)
基于 Python 深度学习的电影评论情感分析可视化系统,基于 Flask 深度学习,构建了一个 影评情感分析系统,能够 自动分析影评、计算情感趋势 并 可视化展示,对于电影行业具有重要参考价值! 基于 Python 深度学习的电影评…...
Linux内核配置与构建原理
Kconfig文件 Kconfig是Linux内核中用于配置功能的脚本语言系统,由众多内核源码树中每个目录下的Kconfig文件组成。它定义Linux相关的配置选项层次结构和依赖关系。 menuconfig工具,会抓取Kconfig中的信息,为用户输出友好的交互式菜单选项配…...
大语言模型微调的基本概念介绍
大型语言模型(LLMs)正在以惊人的速度发展,LLM微调的潜力更是如此。大型语言模型的生命周期有几个关键步骤,今天我们将要介绍这个周期中最丰富、最耗时的一部分——LLM微调过程。 大语言模型的生命周期 在深入了解大型语言模型&a…...
实例分割 | yolov11训练自己的数据集
前言 因工作要求使用的都是yolov5系列的模型,今天学习一下最先进的yolov11,记录一下环境配置及训练过程。 1.项目下载及环境安装 源码位置:yolov11 可以看到,这里要求python版本大于等于3.8,我这里安装python3.10.…...
vue3:四嵌套路由的实现
一、前言 1、嵌套路由的含义 嵌套路由的核心思想是:在某个路由的组件内部,可以定义子路由,这些子路由会渲染在父路由组件的特定位置(通常是 <router-view> 标签所在的位置)。通过嵌套路由,你可以实…...
AIGC和搜索引擎的异同
AIGC(生成式人工智能)与搜索引擎的核心差异体现在信息处理方式和输出形态上,我们可以从以下维度对比: 一、工作原理的本质差异 信息检索机制 搜索引擎:基于关键词匹配(如"中暑怎么办"→返回相关…...
ES批量查询
在 Elasticsearch 中,multi_search(也称为 msearch)是一种允许你在单个请求中执行多个搜索操作的 API。它可以显著减少网络开销,尤其是在需要执行多个查询时。multi_search 会将多个查询打包成一个请求发送给 Elasticsearch&#…...
Vue2学习
一、Vue3 基础 监视属性 天气案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>天气案例</…...
PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
在 PySide中,contextMenuEvent() 是 QWidget 类(以及继承自它的所有子类)的一个事件处理方法,主要用于处理上下文菜单事件,也就是当用户在控件上右键点击时触发的事件。 • 通过重新定义contextMenuEvent()来实现自定…...
Storm实时流式计算系统(全解)——下
storm编程案例-网站访问来源实时统计-需求 storm编程-网站访问来源实时统计-代码实现 根据以上条件可以只写一个类,我们只需要写2个方法和一个main(),一个读取/发射(spout)。 一个拿到数据统计后发到redis…...
配置Nginx日志url encode问题
文章目录 配置Nginx日志url encode问题方法1-lua方法2-set-misc-nginx-module 配置Nginx日志url encode问题 问题描述: 当自定义日志输出格式,需要输出http请求中url参数时,如果参数中包含中文,是会进行url encode的,…...
JAVA SE 包装类和泛型
文章目录 📕1. 包装类✏️1.1 基本数据类型和对应的包装类✏️1.2 装箱和拆箱✏️1.3 自动装箱和自动拆箱 📕2. 泛型✏️2.1 泛型的语法✏️2.2 泛型类的使用✏️2.3 裸类型(Raw Type)✏️2.4 擦除机制✏️2.5 泛型的上界✏️2.6 泛型方法✏️2.7 通配符…...
基于Linux系统的物联网智能终端
背景 产品研发和项目研发有什么区别?一个令人发指的问题,刚开始工作时项目开发居多,认为项目开发和产品开发区别不大,待后来随着自身能力的提升,逐步感到要开发一个好产品还是比较难的,我认为项目开发的目的…...
从零开始开发纯血鸿蒙应用之语音朗读
从零开始开发纯血鸿蒙应用 〇、前言一、API 选型1、基本情况2、认识TextToSpeechEngine 二、功能集成实践1、改造右上角菜单2、实现语音播报功能2.1、语音引擎的获取和关闭2.2、设置待播报文本2.3、speak 目标文本2.4、设置语音回调 三、总结 〇、前言 中华汉字洋洋洒洒何其多…...
物联网小范围高精度GPS使用
在园区内实现小范围高精度GPS(全球定位系统)定位,通常需要结合多种技术来弥补传统GPS在精度和覆盖范围上的不足。以下是实现小范围高精度GPS定位的解决方案,包括技术选择、系统设计和应用场景。 一、技术选择 在园区内实现高精度…...
一次有趣的前后端跨越排查
进行前后端代码联调的时候,使用axios调用后端请求,因为都是本地进行联调,所以没有考虑跨域的问题,写了一个get的请求接口,请求后端时,突然跳出下面的问题: 错误的信息一看很像就是跨域的问题&…...
大语言模型(LLM)如何赋能时间序列分析?
引言 近年来,大语言模型(LLM)在文本生成、推理和跨模态任务中展现了惊人能力。与此同时,时间序列分析作为工业、金融、物联网等领域的核心技术,长期依赖传统统计模型(如ARIMA)或深度学习模型&a…...
交易所技术三重门:吞吐量、安全性与合规性的不可能三角破解之道
引言:交易所战争进入3.0时代 当Coinbase市值突破千亿美元,当Binance单日交易量超越纳斯达克,当Uniswap用AMM机制改写交易规则——数字货币交易所已从边缘实验进化为金融基础设施的核心。在这场价值万亿美元的军备竞赛中,技术架构的…...
强制启动 Cursor IDE 主程序(不带 Agent 模式)
🔧 终极解决:强制启动 Cursor IDE 主程序(不带 Agent 模式)方法 1:用「命令行」强制启动主程序(最稳)按 WinR 打开运行窗口,输入 cmd 回车,打开命令提示符输入下面这行命…...
2026年四款主流 SaaS 收银系统:不同场景怎么选?
开店做生意,最让人头疼的往往不是选址或装修,而是每天打烊后对着乱糟糟的账本发愁。很多刚起步的老板为了省成本,初期只用纸笔或简单的 Excel 记账,一旦客流上来,库存对不上、会员积分算错、交接班混乱等问题接踵而至。…...
Python 3 简介
Python 3 简介 引言 Python 是一种广泛使用的编程语言,以其简洁的语法和强大的库支持而闻名。Python 3 是 Python 编程语言的最新主要版本,自 2008 年发布以来,它已经成为了许多开发者和企业首选的编程语言之一。本文将简要介绍 Python 3 的特点、应用领域以及学习资源。 …...
启XX辰-头部安全公司面试提问
自我介绍 对称加密有哪些,非对称加密有哪些,两者之间的主要差异 有过JS逆向的经验吗 非对称加密如何获取加密前的内容,已知公钥 如果就给你一个登录框,给出你的测试思路 对于在工作时,给你一个企业名,给出你…...
多账号流量内容运营的数据归因与ROI优化:从经验驱动到算法决策的技术转型
📌 当一个团队同时运营20个以上的新媒体账号时,最大的问题不是"怎么发",而是"发了之后怎么知道哪条有用"。本文从数据工程角度,拆解多账号流量内容矩阵如何通过数据归因模型实现ROI优化,以星链引擎…...
[QA]插件式测试用例生成工具:LLM Test Case Tool 的设计与实现
一句话介绍:QA 在需求分析和测试设计中常用的能力沉淀到浏览器插件里:用户在阅读 PRD 时,可以直接在页面右下角调用 Workee,完成摘要、大纲、疑点、测试点、测试用例、UAT 用例和多页面分析。 1. 背景:为什么还需要这个…...
2026 在线考试系统哪个好?功能、客户、方案、优势与服务全对比
前言数字化转型浪潮下,在线考试系统已从教育、企业的辅助工具,升级为覆盖教学考核、人才招聘、员工培训、政务考核、资格认证、知识竞赛的核心数字基础设施。据艾瑞咨询 2026 年 2 月发布的《中国线上考试行业发展白皮书》显示,2025 年中国线…...
RT-DETRv2训练自定义数据集的排坑全记录
RT-DETRv2训练自定义数据集的排坑全记录 最近在使用lyuwenyu/RT-DETR的PyTorch版本训练自定义缺陷检测数据集,从启动报错到成功训练,踩了不少典型的“新手坑”,这里把完整的排坑过程和解决方案整理出来,帮大家一次性避坑ÿ…...
Prism Launcher:重新定义你的Minecraft启动体验
Prism Launcher:重新定义你的Minecraft启动体验 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://gitcode.com/gh_mirrors/…...
