Mongodb操作与Java(三)增删改语句及DDL新增或删除字段

MongoDB概念

MongoDB 基本概念指的是学习 MongoDB 最先应该了解的词汇,比如 MongoDB 中的"数据库"、"集合"、"文档"这三个名词:

文档(Document): 文档是 MongoDB 中最基本的数据单元,由键值对组成,类似于 JSON 格式,可以存储不同字段,字段的值可以包括其他文档,数组和文档数组。(相当于mysql每一行就是一个文档)

集合(Collection): 集合指的是文档组(类似于 Mysql 中的表的概念),里面可以存储许多文档。

数据库(Database): MongoDB 中可以存在多个数据库,每个数据库中中用有不同的集合与用户权限,这样可以供不同的项目组使用不同的数据库。

基础增删改

增

插入单个文档:

db.collection.insertOne({
name: "John Doe",
age: 30,
email: "john.doe@example.com"
});

插入多个文档:

db.collection.insertMany([

{ name: "Alice", age: 25, email: "alice@example.com" },

{ name: "Bob", age: 28, email: "bob@example.com" }

]);

删

删除单个文档:

db.collection.deleteOne({ name: "John Doe" });

删除多个文档:

db.collection.deleteMany({ age: { $lt: 30 } });

改

更新单个文档:

这条命令查找第一个匹配的 name: "John Doe" 的文档,并更新其 age 字段。

db.collection.updateOne(

{ name: "John Doe" }, // 查询条件

{ $set: { age: 31 } } // 更新操作

);

更新多个文档:

这条命令查找所有 age 小于 30 的文档,并更新它们的 status 字段。

db.collection.updateMany(

{ age: { $lt: 30 } }, // 查询条件

{ $set: { status: "young" } } // 更新操作

);

新增或删除字段

新增字段

MongoDB 是基于文档的,所以不存在传统意义上的"新增字段"。你简单地向文档中添加新的键值对即可。这意味着如果你想在某个集合的文档中添加新字段,你只需在插入或更新文档时包含该字段。例如,如果你想给现有文档添加一个 phoneNumber 字段,你可以使用如下命令:

db.collection.updateMany(

{}, // 查询条件,空对象{}表示更新所有文档

{ $set: { phoneNumber: "123-456-7890" } } // 添加phoneNumber字段

);

这条命令会向集合中的所有文档添加一个 phoneNumber 字段。

删除字段

删除一个字段需要使用 $unset 操作符。这个操作符会从匹配的文档中移除指定的字段。例如,如果你决定从文档中删除 phoneNumber 字段,可以执行以下命令:

db.collection.updateMany(

{}, // 查询条件,空对象{}表示更新所有文档

{ $unset: { phoneNumber: "" } } // 删除phoneNumber字段 ,指定要删除的字段,值可以是空字符串或1

);

相关推荐
爱喝水的鱼丶1 小时前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
蛋蛋的就会顺顺的8 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
余槐i8 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹8 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo8 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
需要8268 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡8 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
骇客野人9 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
美狐美颜SDK开放平台10 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
伯恩bourne10 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端