首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB从子文档中删除子文档文档

MongoDB是一种非关系型数据库,它支持多种数据类型和操作,包括查询、插入、更新和删除等。在MongoDB中,可以通过db.collection.remove()方法来删除文档。

假设要从collection集合中删除一个或多个文档,可以使用以下方法:

代码语言:javascript
复制
// 删除单个文档
db.collection.remove({
  "name": "John"
});

// 删除多个文档
db.collection.remove({
  "name": "John",
  "age": 20
});

在上述示例中,db.collection.remove()方法接受一个查询对象,该对象可以包含多个属性,以匹配要删除的文档。remove()方法将返回一个布尔值,表示是否成功删除了匹配的文档。

需要注意的是,remove()方法不会修改集合中现有的文档数量,而是将匹配的文档从集合中删除。如果您需要修改集合中现有的文档数量,可以使用db.collection.countDocuments()方法来获取文档数量,并使用db.collection.remove()方法来删除指定数量的文档。

此外,如果您要从子文档中删除子文档,可以使用db.collection.update()方法来更新文档。例如,以下示例演示了如何从collection集合中的subcollection子集合中删除一个或多个文档:

代码语言:javascript
复制
// 删除单个文档
db.collection.update({
  "subcollection.name": "John"
}, {
  $set: {
    "subcollection.age": 20
  }
}, {
  multi: true
});

// 删除多个文档
db.collection.update({
  "subcollection.name": "John",
  "subcollection.age": 20
}, {
  $set: {
    "subcollection.age": 21
  }
}, {
  multi: true
});

在上述示例中,db.collection.update()方法接受一个查询对象和一个更新对象,以匹配要更新的文档。update()方法将返回一个布尔值,表示是否成功更新了匹配的文档。multi选项指定更新所有匹配的文档。

需要注意的是,如果更新操作只影响部分文档,则multi选项将不起作用,只有所有文档都匹配更新才会生效。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mongoDB 文档删除

mongoDB文档删除等同于关系型数据库删除满足条件的单条或者多条记录,通常使用db.collection.remove()方法来实现文档删除动作。...mongDB文档删除属于原子性操作,仅仅在仅仅在单个文档级别。本文描述mongoDB文档删除操作并给出示例。...预备热身 Linux下快速安装MongoDB Windows平台下安装MongoDB mongoDB 启动与停止 mongo shell连接到mongoDB及shell提示符下执行js...脚本 mongoDB简介及关键特性 SQL与mongoDB对比及映射 一、删除文档的常用方法 1、删除文档常用方法 db.collection.remove() 删除满足匹配条件的一个或多个文档...删除满足匹配条件的所有文档 单个或集合内的所有文档删除,与之相应的索引并不会被删除 文档删除的操作属于原子性操作,仅仅在单个文档级别,可以理解为关系型数据库的行级锁 2、语法

1.5K10

MongoDB(8)- 文档删除操作

删除方法 db.collection.deleteOne() 删除单条文档 db.collection.deleteMany() 删除多条文档 db.collection.remove() 删除单条或多条文档...,要删除集合的所有文档,传递一个空文档 ({}) 就行 justOne:可选项,true,删除第一个满足删除条件的文档,默认 false,删除所有满足条件的文档 writeConcern:可选项,设置抛出异常的级别...只删除集合第一条文档 删除指定条件的文档 db.inventory.deleteMany({ status : "A" }) ?...status 为 “A” 的文档有两条,但只会删除匹配到的第一条 条件删除 删除 qty 字段值大于 50 的文档 db.inventory.remove( { qty: { $gt: 50 } }...删除操作的重点 删除文档不会删除索引 所有操作在单个文档级别上都是原子性的 以下方法也可以从集合删除文档 db.collection.findOneAndDelete() db.collection.findAndModify

63310

MongoDB创建更新删除文档操作

一、插入\创建文档 --当插入一个不存在的文档时,会自动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecting to:...db.cols.insert({bar:"baz"}) > db.cols.find() { "_id" :ObjectId("56aac1df4e61b6d9f84d17e0"), "bar" :"baz" } 二、删除文档...--删除所有文档 > db.cols.remove() --删除符合条件的文档 > db.cols.remove({bar:"baz"}) 注意:db.cols.remove()不会删除cols集合本身...$pop $pop修改器可以从数组任何一端删除元素。 {$pop:{key:1}}从末尾端删除元素 {$pop:{key:-1}}从开头端删除元素 8....对数组[1,1,2,1]执行pull 1,得到的结果是只有一个元素[2] 数组的定位修改器 有两种方法操作数组的值:通过位置和定位操作符$ 数组都是以0开头的,可以直接用下标直接作为键来选择元素,如下

1.1K10

MongoDB创建更新删除文档操作

一、插入\创建文档 --当插入一个不存在的文档时,会自动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecting to:...db.cols.insert({bar:"baz"}) > db.cols.find() { "_id" :ObjectId("56aac1df4e61b6d9f84d17e0"), "bar" :"baz" } 二、删除文档...--删除所有文档 > db.cols.remove() --删除符合条件的文档 > db.cols.remove({bar:"baz"}) 注意:db.cols.remove()不会删除cols集合本身...$pop $pop修改器可以从数组任何一端删除元素。 {$pop:{key:1}}从末尾端删除元素 {$pop:{key:-1}}从开头端删除元素 8....对数组[1,1,2,1]执行pull 1,得到的结果是只有一个元素[2] 数组的定位修改器 有两种方法操作数组的值:通过位置和定位操作符$ 数组都是以0开头的,可以直接用下标直接作为键来选择元素,如下

1.1K10

数据库MongoDB-删除文档

删除文档 remove()函数 使用remove()函数可删除集合的指定文档。 语法格式:remove({指定删除条件},删除参数(可选参数)) 删除age为空的第一条数据。...db.c1.remove({age:{$exists:false}},1); 删除所有age为空的数据。...db.c1.remove({age:{$exists:false}}); deleteOne()函数 deleteOne()函数是官方推荐删除文档的方法。该方法只删除满足条件的第一条文档。...删除age为18的第一个文档对象 db.c1.deleteOne({age:18}); deleteMany()函数 deleteMany函数是官方推荐的删除方法。该方法删除满足条件的所有数据。...删除所有age为18的文档对象。 db.c1.deleteMany({age:18}); 删除集合的所有文档 当remove和deleteMany条件设置为空时表示删除全部。

79030

mongoDB 文档插入

mongoDB文档插入与SQL表insert方式基本相同。...在关系数据库,我们需要先定义表,然后才能将记录插入到文档,而在mongoDB,由于无需预定义模式,因此,在集合不存在的情形下,直接insert就会生成新的集合。...如果已经存在,则会在现有的集合内增加新文档。而且插入的文档可以与集合上的其他文档使用不同的键或键值类型。本文主要描述mongoDB文档插入,供大家参考。...脚本 mongoDB简介及关键特性 SQL与mongoDB对比及映射 一、文档插入语法 db.collection.insertOne(obj, ) 插入单个文档到一个集合...则自动创建该集合,否则直接插入文档 mongoDB中所有的插入操作都属于单个文档级别的原子性操作,即相当于关系型数据库的行级锁 mongoDB文档插入的时候,如果未显示指定_id列,则会自动添加该列

94530

mongoDB 文档更新

mongoDB对于文档的更新,既可以实现文档的更新,也可以实现文档随意的增减键(列),这是与传统的关系型数据库最大的不同之处,也就是所谓的无模式带来的一定程度上的便利。...即mongoDB支持文档更新,也支持文档替换。本文给出了mongoDB更新语法及示例。...预备热身 Linux下快速安装MongoDB Windows平台下安装MongoDB mongoDB 启动与停止 mongo shell连接到mongoDB及shell提示符下执行js...脚本 mongoDB简介及关键特性 SQL与mongoDB对比及映射 一、文档更新语法 db.collection.update( ,...文档更新有很多个不同的方法,传统的update,以及3.2版本之后的updateOne,updateMany 2、mongoDB文档替换也有很多个不通的方法,传统的update,以及3.2版本之后的

1.6K20

MongDB删除文档和更新文档

4、删除文档和更新文档 // 删除单个 Course.findOneAndDelete({}).then(result => console.log(result)) // 删除多个 User.deleteMany...result)) // 引入mongoose第三方模块 用来操作数据库 const mongoose = require('mongoose'); // 数据库连接 mongoose.connect('mongodb...// 返回删除文档 // 如何查询条件匹配了多个文档 那么将会删除第一个匹配的文档 // User.findOneAndDelete({_id: '5c09f267aeb04b22f8460968'...}).then(result => console.log(result)) // 删除多条文档 // {} 即删除所有文档 User.deleteMany({}).then(result => console.log...// 返回是否删除成功的对象 // 如果匹配了多条文档, 只会删除匹配成功的第一条文档 // User.updateOne({name: '李四'}, {age: 120, name: '李狗蛋'})

2.8K10

MongoDB 插入文档

本章节我们将向大家介绍如何将数据插入到 MongoDB 的集合文档的数据结构和 JSON 基本一样。 所有存储在集合的数据都是 BSON 格式。...插入文档 MongoDB 使用 insert() 或 save() 方法向集合插入文档,语法如下: db.COLLECTION_NAME.insert(document) 或 db.COLLECTION_NAME.save...实例 以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合: >db.col.insert({title: 'MongoDB 教程', description: '...', 'NoSQL'], likes: 100 }) 以上实例 col 是我们的集合名,如果该集合不在该数据库MongoDB 会自动创建该集合并插入文档。...查看已插入文档: > db.col.find() { "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description

1.1K20

mongoDB 文档查询

在关系型数据库,可以实现基于表上各种各样的查询,以及通过投影来返回指定的列。对于NoSQL mongoDB而言,所有能够在单表上完成的查询,在mongoDB也可以完全胜任。...除此之外,由于mongoDB支持基于文档嵌套以及数组,因此mongoDB也可以实现基于嵌套文档和数组的查询。具体见下文描述。...预备热身 Linux下快速安装MongoDB Windows平台下安装MongoDB mongoDB 启动与停止 mongo shell连接到mongoDB及shell提示符下执行js脚本...black的文档 db.users.find( { badges: "black" } ) //匹配一个特定的数组元素 //查询数组badges第一个元素为black的文档...,注,以下查询,不存在name列的文档_id:901的也被返回 > db.users.find( { name: null } ) { "_id" : 900, "name" : null

3.1K20

MongoDB文档查询操作

MongoDB文档查询 1、语法 2、对比语法 3、AND 4、OR 5、AND与OR联合 6、数据查询 7、模糊查询 8、排序 9、分页 10、总条数 11、去重 12、指定返回字段 1、语法...查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。...如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下: > db.集合名称.find().pretty() 注意: pretty() 方法以格式化的方式来显示所有文档。...2、对比语法 如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询: 先查询下collections的数据 让数据友好显示: db.users.find().pretty...')' > db.集合名称.find({"age": {$gt:50}, $or: [{"name": "编程不良人"},{"name": "MongoDB"}]}).pretty(); 6、数据查询

1K20

MongoDB文档更新操作

我们在前面的文章中提到过文档的基本的增删改查操作,MongoDB中提供的增删改查的语法非常丰富,本文我们主要来看看更新都有哪些好玩的语法。...本文是MongoDB系列的第四篇文章,了解前面的文章有助于更好的理解本文: ---- 文档替换 假设我的集合现在存了如下一段数据: { "_id" : ObjectId("59f005402844ff254a1b68f6...另外一个问题是更新时,MongoDB只会匹配第一个更新的文档,假设我的MongoDB中有如下数据: { "_id" : ObjectId("59f00d4a2844ff254a1b68f7"), "x"...使用修改器 很多时候我们修改文档,只是要修改文章的某一部分,而不是全部,但是现在我面临这样一个问题,假设我有如下一个文档: {x:1,y:2,z:3} 我现在想把这个文档x的值改为99,我可能使用如下操作...$pull 使用$pull我们可以按条件删除数组的某个元素,如下: db.sang_collect.update({name:"三国演义"},{$pull:{comments:"444"}}) 表示删除数组中值为

1.4K40

MongoDB文档(一)

MongoDB是一种非关系型数据库,使用BSON(Binary JSON)格式存储数据。MongoDB文档MongoDB的核心数据结构,类似于关系数据库的行。...MongoDB文档是由键值对组成的,其中每个键都是一个字符串,每个值都可以是各种类型的数据,例如字符串、数字、日期、数组、对象等。文档的键和值之间用冒号分隔,不同的键值对之间用逗号分隔。...以下是一个简单的MongoDB文档示例:{ name: "John", age: 30, hobbies: ["reading", "traveling"], address: { city...MongoDB文档可以存储在集合,集合是MongoDB存储文档的容器。...以下是一些常见的MongoDB文档操作:插入文档要向MongoDB的集合插入文档,可以使用集合对象的insertOne()或insertMany()方法。

61420

MongoDB :第五章:MongoDB 插入更新删除查询文档

MongoDB 插入文档 本章节我们将向大家介绍如何将数据插入到MongoDB的集合文档的数据结构和JSON基本一样。 所有存储在集合的数据都是BSON格式。...MongoDB 删除集合 MongoDB 更新文档 2 篇笔记 写笔记    二少   272***623@qq.com   参考地址 3.2 版本后还有以下几种语法可用于插入文档: db.collection.insertOne...(arr); MongoDB 更新文档 MongoDB 使用 update() 和 save() 方法来更新集合文档。...删除文档 在前面的几个章节我们已经学习了MongoDB如何为集合添加数据和更新数据。...在本章节我们将继续学习MongoDB集合的删除MongoDB remove()函数是用来移除集合的数据。 MongoDB数据更新可以使用update()函数。

7.5K30
领券