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…...
FLUX.1-dev创作实战:从输入文案到生成图片,完整流程一次跑通
FLUX.1-dev创作实战:从输入文案到生成图片,完整流程一次跑通 1. 认识FLUX.1-dev:新一代AI图像生成引擎 FLUX.1-dev是Black Forest Labs推出的开源AI图像生成模型,以其出色的真实感和高效生成能力在开发者社区中广受好评。与常见…...
7款AI论文写作工具推荐:爱毕业aibiye等平台提供自动排版及LaTeX模板适配
工具快速对比排名(前7推荐) 工具名称 核心功能亮点 处理时间 适配平台 aibiye 学生/编辑双模式降AIGC 1分钟 知网、万方等 aicheck AI痕迹精准弱化查重一体 ~20分钟 知网、格子达、维普 askpaper AIGC率个位数优化 ~20分钟 高校检测规则通…...
Windows系统优化终极指南:用Win11Debloat免费快速提升性能
Windows系统优化终极指南:用Win11Debloat免费快速提升性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...
Windows任务栏美化完全指南:打造个性化桌面体验
Windows任务栏美化完全指南:打造个性化桌面体验 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Windows任务栏美化是许多用户…...
企业AI定制开发:以工业场景为核心,赋能全行业数智化转型
在人工智能与实体经济深度融合的趋势下,标准化AI产品难以适配企业差异化业务流程,定制化AI开发成为企业数智化转型的关键路径。山东向量空间人工智能科技有限公司依托JBoltAI企业级Java AI应用开发框架,聚焦工业领域AI改造,同时为…...
电商网站SEO网站结构应该如何设计
电商网站SEO网站结构设计的关键点 在当今数字化时代,电商网站的成功离不开搜索引擎优化(SEO)。一个精心设计的网站结构不仅能提升网站的用户体验,还能大大提高在搜索引擎上的排名。电商网站SEO网站结构应该如何设计呢?…...
OpenClaw未来展望:Qwen3-14B与本地自动化的5个进化方向
OpenClaw未来展望:Qwen3-14B与本地自动化的5个进化方向 1. 从工具到伙伴:OpenClaw的现状与定位 去年冬天,当我第一次在本地MacBook上部署OpenClaw时,它还是个需要手动配置JSON文件才能调用本地模型的"半成品"。如今看…...
Kandinsky-5.0-I2V-Lite-5s代码实例:Python调用API与前端交互实操解析
Kandinsky-5.0-I2V-Lite-5s代码实例:Python调用API与前端交互实操解析 1. 模型简介与核心能力 Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型,它能够将静态图片转化为动态视频内容。只需提供一张首帧图片和简单的运动描述,模型就能生…...
从零到专业:League Director 让你的英雄联盟回放变成电影级大片
从零到专业:League Director 让你的英雄联盟回放变成电影级大片 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …...
【米家IoT开发】巧用Charles抓包,高效定位与调试网络接口
1. 为什么Charles是米家IoT开发的调试神器 当你开发米家扩展程序时,最头疼的莫过于接口返回异常数据,或者请求莫名其妙失败。这时候如果只能靠猜问题出在哪里,那简直就是在黑暗中摸索。我刚开始做米家IoT开发时,就经常被这种问题困…...
