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

MongoDB快速入门CRUD

1. 数据库管理

1.1 切换数据库

切换到名为 myDatabase 的数据库。如果该数据库不存在,MongoDB 会在第一次写入数据时自动创建它。

use myDatabase;

1.2 查看当前数据库

显示当前使用的数据库的名称。

db;

1.3 显示所有数据库

列出当前 MongoDB 实例中的所有数据库。

show dbs;

2. 集合管理

2.1 创建集合

在当前数据库中创建一个名为 book 的集合。集合是 MongoDB 中存储文档的地方。

db.createCollection("book");

2.2 创建有验证规则的集合

创建一个名为 books 的集合,设置为 capped(固定大小)并定义验证规则。该集合最多可容纳 1000 个文档,大小限制为 1024 字节。

db.createCollection("books", {capped: true,size: 1024,max: 1000,validator: {$jsonSchema: {bsonType: "object",required: ["book_name", "book_money"],properties: {book_name: {bsonType: "string",description: "书名必须为字符串且为必填项"},book_money: {bsonType: "string",description: "价格必须为字符串且为必填项"}}}},validationLevel: "strict",validationAction: "error"
});

3. 文档操作

3.1 插入单个文档

向 book 集合中插入一个文档,包含书名、价格和语言字段。

db.book.insertOne({name: "《疯狂Java讲义》第六版",money: 100,language: "Java"
});

3.2 插入多个文档

使用 insertMany 方法一次性插入多个文档到 books 集合中。

db.books.insertMany([{book_name: "《疯狂Python讲义》",book_money: "123"},{book_name: "《刘海柱》",book_money: "30"}
]);

4. 更新文档

4.1 更新单个文档

更新 _id 为特定值的文档,将 book_name 和 book_money 字段设置为新的值。

db.books.updateOne({_id: ObjectId("66c3069ea50d000087000a10")},{$set: {book_name: "《维生素》",book_money: "30"}},{upsert: false}
);

4.2 更新多个文档

更新所有 book_name 为 "《买瓜子》" 的文档,将其字段更新为新的值。

db.books2.updateMany({book_name: "《买瓜子》"
}, {$set: {book_name: "修改了 ",book_money: "55"}
});

5. 查询文档

5.1 查找单个文档

查找 book_name 为 "《奥里给》" 的第一个文档并返回。

db.books2.findOne({book_name: "《奥里给》"}
);

5.2 查找多个文档

查找 book_money 小于 "40" 的所有文档。

db.books2.find({book_money: {$lt: "40"}
});

6. 删除文档

6.1 删除多个文档

删除所有 book_name 为 "诶" 的文档。

db.books2.deleteMany({book_name: "诶"}
);

6.2 删除单个文档

删除 book_name 为 "《维生素666t》" 的单个文档。

db.books2.deleteOne({book_name: "《维生素666t》"}
);

6.3 查找并删除文档

查找并删除 book_name 为 "爱的番茄" 的文档。

db.books2.findOneAndDelete({book_name: "爱的番茄"}
);

7. 排序与限制

7.1 排序结果

db.books2.find().sort({book_sort: -1
});

7.2 跳过和限制结果

跳过前 2 个结果,并限制返回 3 个文档。

db.books2.find().skip(2).limit(3);

8. 使用逻辑操作符

8.1 使用 $and

查找 book_name 不等于 "《奥里给》" 且 book_money 不等于 "30" 的文档。

db.books2.find({$and: [{book_name: {$ne: "《奥里给》"}},{book_money: {$ne: "30"}}]
});

8.2 使用 $or

查找 book_name 为 "奥迪卡" 或 "哈哈哈" 的文档。

db.books2.find({$or: [{book_name: "奥迪卡"},{book_name: "哈哈哈"}]}
).pretty();

总结

通过以上操作,我们可以看到 MongoDB 提供了丰富的功能来管理和操作数据。无论是插入、更新、查询还是删除,MongoDB 都为开发者提供了灵活和高效的方式来处理数据。希望这篇入门指南能帮助你更好地理解和使用 MongoDB。

相关文章:

MongoDB快速入门CRUD

1. 数据库管理 1.1 切换数据库 切换到名为 myDatabase 的数据库。如果该数据库不存在,MongoDB 会在第一次写入数据时自动创建它。 use myDatabase;1.2 查看当前数据库 显示当前使用的数据库的名称。 db; 1.3 显示所有数据库 列出当前 MongoDB 实例中的所有数…...

【python基础】—利用pandas读取或写入mysql表数据

文章目录 一、read_sql()二、to_sql()三、连接数据库方式—MySQL1、用sqlalchemy包构建数据库链接2、用DBAPI构建数据库链接 四、容易遇到的问题 一、read_sql() 功能 将 SQL 查询/数据库表读入 DataFrame。 语法 读取数据库(通过SQL语句或表名) pand…...

C/C++信号量

文章目录 一、信号量介绍1.1 什么是信号量1.2 信号量的原子性1.3 信号量的使用 二、C语言使用2.1 函数接口2.2 信号量代码 三、C20使用3.1 函数接口 四、C11模拟信号量 一、信号量介绍 1.1 什么是信号量 信号量是一种特殊的变量,是操作系统层面的,可以…...

SSL Pining 问题解决方案

实战案例 为了能够更好的复现 SSL Pining 场景,我们对一个 App(https:app4.scrape.center)进行抓包,这个 App 包含了 SSL Pining 的相关设置,如果我们将手机的代理设置为抓包软件提供的代理服务,那么这个 …...

【Spring Boot】全局异常处理

目录 背景 前言 设计步骤 1.定义异常信息类: 2.自定义异常: 3.创建全局异常处理类 4.在控制器中抛出异常 5.输出 捕获 Valid 校验异常 背景 去面试的时候被问到SpringBoot项目中,如何处理全局异常的,也就是如何捕获全局异…...

安全基础学习-SM3加密算法

SM3是一种广泛使用在中国国家标准中的哈希算法,全称为“中国国家密码算法SM3”。它由中国国家密码管理局制定,主要用于数字签名和消息完整性验证。SM3算法与SHA-256在结构上类似,但其设计具有特定的改进以增强安全性。 SM3算法生成256位的哈希值,使用了32轮的迭代运算,并…...

MySQL中处理JSON数据:大数据分析的新方向

1. 简介 1.1. 概述 在MySQL中处理JSON数据的能力是在MySQL 5.7版本中引入的,并在后续的版本中不断得到增强。这使得MySQL能够直接操作和查询JSON格式的数据,极大地扩展了其处理复杂数据结构的能力。 1.2. 主要特点 灵活性与可扩展性 :JSON允许开发者存储不规则和嵌套的数…...

K8S 容器调度

在Kubernetes中,容器调度是一个自动化的过程,负责将容器(在Kubernetes中称为Pod)分配到集群中的合适节点上运行。这一过程由Kubernetes的调度器(kube-scheduler)控制,它通过一系列算法和策略来确…...

C++ //练习 17.2 定义一个tuple,保存一个string、一个vector<string>和一个pair<string, int>。

C Primer&#xff08;第5版&#xff09; 练习 17.2 练习 17.2 定义一个tuple&#xff0c;保存一个string、一个vector和一个pair<string, int>。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /**********************…...

外观检测设备真的能提高生产效率吗?

零部件外观检测设备是一种专业的设备&#xff0c;用于对各类零部件的外观进行检测和评估。现代制造业中扮演着重要的角色&#xff0c;能够有效提升产品质量&#xff0c;确保产品符合国家标准和客户需求。 首先&#xff0c;零部件外观检测设备具备高精度和高效率的特点。通过采用…...

ant design pro 中用户的表单如何控制多个角色

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的 看上面的图片 当创建或编辑一个用户时&#xff0c;…...

Prometheus监控系统

目录 1.Prometheus概述 1.1 TSDB时序数据库 1.2 Prometheus 的特点 1.3 Prometheus 的生态组件 1.4 Prometheus 的工作模式&#xff1a; 1.5 Prometheus 的工作流程 1.6 Prometheus 的局限性 2.部署Prometheus 2.1 Prometheust Server 端安装和相关配置 2.2 部署 Expo…...

mq-fanout交换机

交换机 交换机是什么?步骤 交换机本身具备路由功能 消息先发到交换机,交换机在路由到队列,消费者监听队列拿到消息 广播模式是什么 是什么 例如:每个微服务创建队列,订单服务只启动1台,1个消费者,订单 怎么创建 创建一个队列 -交换机里type-选择模式(广播模式) 在交换…...

android13禁用打开wifi ap 热点

总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 3.代码分析 4.代码修改 5.彩蛋 1.前言 这个文章介绍的是如何禁止用户打开wifi热点,禁止用户安装app后,打开wifi热点。 2.情况分析 android13 应用层打开wifi AP public void setWifiApEnabled(boolean isEn…...

前端宝典之六:React源码解析之lane模型

本文主要内容&#xff1a; 介绍lane模型 一、 lane模型 lane模型就是react优先级的机制&#xff0c;可以用来 可以表示优先级的不同可能同时存在几个同优先级的更新&#xff0c;所以还得能表示批的概念方便进行优先级相关计算 1、表示优先级不同 lane模型使用31位的二进制…...

邦德咖啡线下门店盛大开业,引领国产健康咖啡新风尚

近日&#xff0c;国内咖啡市场迎来了一股清新的绿色风潮&#xff0c;邦德咖啡线下门店正式拉开帷幕&#xff0c;以其独特的健康理念和创新的产品&#xff0c;誓要成为国产咖啡界的一股强劲力量。 邦德咖啡线下门店以阿卡迪亚绿色为品牌主色调&#xff0c;立志打造国产健康咖啡…...

Elasticsearch + Search UI 构建一个文件搜索引擎

目录 Elasticsearch使用优势App Search Search UI配置engine集中管理配置和提供实用工具函数配置和初始化一个基于Elasticsearch的搜索界面应用程序Search UI 基础用法 好书推荐 Elasticsearch 使用优势 使用ElasticSearch的主要好处在于其强大的全文搜索和实时分析能力。Elas…...

机械学习—零基础学习日志(如何理解概率论2)

全概率公式与贝叶斯公式 上面所提到的公式&#xff0c;可以使用上一篇文章的基本公式推导。 使用到了概率的基本运算公式。 完整的公式展示&#xff1a; 习题练习&#xff1a; 剩余的练习&#xff1a; 第二题解析&#xff1a; 第三题&#xff1a; 第四题&#xff1a; 注意&…...

鸿蒙关于手机全局本地文件读取,写入

一.背景 需求是需要操作用户手机中的文件&#xff0c;不是应用沙箱 二.解决方案 这里要注意的一点拿到fsOpen.path的路径再去进行open文件&#xff0c;因为这里还不知道本地文件路径在哪里&#xff0c;需要选择一下路径再拿到路径去请求 1.这里就是进行两个fs.open&#xf…...

嵌入式企业面试真题

1.C语言中指针数组和数组指针的区别是什么? 答:指针数组是指数组的元素都是指针类型的数组。数组指针是指一个指向数组的指针。指向的是数组第一个元素的地址,每次偏移一个数组的大小。 2.讲一下什么是结构体字节对齐? 答:结构体字节对齐是指当结构体中元素的物理内存大…...

告别showSoftInput失效:一文读懂Android 11+的WindowInsetsController输入法控制

Android输入法控制演进&#xff1a;从InputMethodManager到WindowInsetsController的深度解析 在移动应用开发中&#xff0c;输入法交互是最基础却又最容易被忽视的细节之一。许多开发者都曾遇到过这样的场景&#xff1a;精心设计的登录界面&#xff0c;光标在输入框闪烁&#…...

AI驱动命令行工具:用自然语言自动化开发任务

1. 项目概述&#xff1a;一个为开发者“下厨”的AI助手如果你是一名开发者&#xff0c;每天在终端里敲打命令&#xff0c;构建、部署、调试&#xff0c;那么你肯定对重复性的命令行操作感到厌倦。比如&#xff0c;每次启动一个新项目&#xff0c;都要手动创建目录结构、初始化G…...

【C语言】printf格式化输出:你真的理解“四舍五入”的陷阱吗?

1. 从printf的"四舍五入"陷阱说起 那天我在调试一个财务计算程序时&#xff0c;发现金额显示总差那么几分钱。比如3.145元应该显示为3.15&#xff0c;但程序输出却是3.14。这让我想起刚学C语言时踩过的坑——printf的格式化输出并不像数学课教的四舍五入那样简单。 先…...

怎么找到一个行业的源头工厂、绕开中间商?一套五步识别流程

你下了单&#xff0c;货到了&#xff0c;质量也还行。但心里一直有个疙瘩&#xff1a;这家供应商到底是自己在生产&#xff0c;还是从别处转手赚了你一道差价&#xff1f; 这个问题对采购方和跨境卖家不是洁癖&#xff0c;是真金白银。同一款产品&#xff0c;源头工厂和中间商的…...

Nextra:基于Next.js的现代化文档站构建利器

1. 项目概述&#xff1a;为什么Nextra能成为文档站构建的“瑞士军刀”&#xff1f;如果你最近在寻找一个构建技术文档、博客或个人知识库的工具&#xff0c;大概率会听到“Nextra”这个名字。它不是一个独立框架&#xff0c;而是一个基于Next.js的静态站点生成器&#xff0c;专…...

中鼎智能冲刺港股:年营收18.8亿 诺力股份是实控股东

雷递网 雷建平 5月16日中鼎智能&#xff08;无锡&#xff09;科技股份有限公司&#xff08;简称&#xff1a;“中鼎智能”&#xff09;日前更新招股书&#xff0c;准备在港交所上市。截至2026年3月31日止三个月&#xff0c;与上年同期相比&#xff0c;中鼎智能录得相对稳定的收…...

AI科技热点日报 | 2026年5月16日

文章目录AI科技热点日报 | 2026年5月16日一、大模型与基础技术《人工智能终端智能化分级》系列国家标准发布"九章四号"量子计算原型机刷新世界纪录二、AI政策与监管人工智能科技伦理审查与服务先导计划启动工信部部署高质量行业数据集建设三、Agent与应用"AI教育…...

为什么你的ElevenLabs马拉雅拉姆文输出失真?5步诊断法+3个预处理Python脚本立即修复

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs马拉雅拉姆文输出失真的根本成因 马拉雅拉姆语&#xff08;Malayalam&#xff09;作为印度喀拉拉邦的官方语言&#xff0c;拥有高度复杂的音节结构、连字规则&#xff08;conjunct consonant…...

突破性开源Switch模拟器Ryujinx:零基础实现PC端任天堂游戏全兼容

突破性开源Switch模拟器Ryujinx&#xff1a;零基础实现PC端任天堂游戏全兼容 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说&#xff1a;旷野之息》的冒险…...

手工打造柔性LED眼罩:从SMD焊接入门到可穿戴电路实践

1. 项目概述&#xff1a;从零打造你的赛博格之眼如果你和我一样&#xff0c;对《银翼杀手》里那些闪烁着冷光的义眼&#xff0c;或是赛博朋克美学中标志性的发光装饰着迷&#xff0c;那么亲手制作一个属于自己的LED眼罩&#xff0c;绝对是一次令人兴奋的旅程。这不仅仅是一个酷…...