iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >MongoDB如何更新多级文档的数据
  • 437
分享到

MongoDB如何更新多级文档的数据

2024-04-02 19:04:59 437人浏览 泡泡鱼
摘要

目录嵌套数组更新更新下级文档的属性属性增加和移除总结嵌套数组更新 以下面的数据(数据集名称为author)为例: {name: '岛上码农', documents: ['Flu

嵌套数组更新

以下面的数据(数据集名称为author)为例:


{name: '岛上码农', documents: ['Flutter入门与实战', '高性能Mysql', 'mongoDB专业指北']}

我们需要将 MonGoDB专业指北改成MongoDB不专业指北,就属于修改嵌套的文档数据了。这个时候需要使用到 MongoDB 提供的定位操作符$。定位操作符即表示将对应条件匹配到的数据,如:


db.author.update(
  {name: '岛上码农', documents: 'MongoDB专业指北'}, 
  {'$set': {'documents.$': 'MongoDB不专业指北'}}
);

对于下级节点为数组的也是一样。


{
  name: '岛上码农', 
  documents: [
    {name: 'Flutter入门与实战', score: 80}, 
    {name: '高性能mysql', score: 90}, 
    {name: 'MongoDB专业指北', score: 85}
  ]
}

需要将 documengs 节点的 name 和 score 进行修改。


db.author.update(
  {name: '岛上码农', 'documents.name': 'MongoDB专业指北'},
  {'$set': {
    	'documents.$.name': 'MongoDB不专业指北', 
    	'documents.$.score':88}
  }
);

$定位操作符即在查询条件中找到的数组中的数据元素位置,即表示操作的是该位置的数据。

更新下级文档的属性

更新下级文档属性时可以直接使用属性访问符“.”,例如下面需要更新 praise 增加到291。


{
  name: '岛上码农', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105
	}
}

db.author.update(
  {name: '岛上码农'}, 
  {'$set': {'scores.praise': 291}}
);

下级文档若还存在嵌套数组也是类似的操作,如下面的数据,需要将“公众号”换成“微信公众号”:


{
  name: '岛上码农', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105,
    platfORM: ['掘金', '公众号']
	}
}

db.author.update(
  {'name': '岛上码农', 'scores.platform': '公众号'},
  {'$set': {'scores.platform.$':'微信公众号'}}
);

属性增加和移除

MongoDB提供了 $push 和 $pull操作指令来增加或移除属性,同时还提供了 $pop 来移除数组的第一个或最后一个值。我们给前一个文档增加一个 homepage 属性。


db.author.update(
  {name: '岛上码农'}, 
  {$push: {homepage: 'https://juejin.cn/user/70787819648695'}}
);

注意的是,此时插入的是一个名为 homepage 的数组,其中的一个元素是:juejin.cn/user/707878…。如果是增加不是数组的属性,使用$set 指令即可。 可以使用 pull 移除掉匹配的一个属性。


db.author.update(
  {name: '岛上码农'}, 
  {$pull: {homepage: 'Https://juejin.cn/user/70787819648695'}}
);

$pop 操作时使用数字-1和1表示移除首尾的元素,对于下面的数据,移除数组platform里的数据。


{
  name: '岛上码农',
	scores : {
		view: 18800,
		praise: 290,
		followers: 105,
		platform: ['掘金', '公众号', '其他1', '其他2']
	}
}

// 移除第一个元素
db.author.update({name: '岛上码农'}, {$pop: {'scores.platform': -1}});
// 移除最后一个元素
db.author.update({name: '岛上码农'}, {$pop: {'scores.platform': 1}});

总结

本篇介绍了 MongoDB 的嵌套属性更新操作,主要是定位操作符$的使用。通过定位符可以定位我们需要修改的数据位置,进而进行更新操作。以及属性的添加和移除,通过$push、$pull和$pop指令即可完成响应的操作。

以上就是MongoDB如何更新多级文档的数据的详细内容,更多关于MongoDB 更新多级文档的资料请关注编程网其它相关文章!

--结束END--

本文标题: MongoDB如何更新多级文档的数据

本文链接: https://www.lsjlt.com/news/128805.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB如何更新多级文档的数据
    目录嵌套数组更新更新下级文档的属性属性增加和移除总结嵌套数组更新 以下面的数据(数据集名称为author)为例: {name: '岛上码农', documents: ['Flu...
    99+
    2022-11-12
  • 如何更新 MongoDB 文档的 _id?
    您无法更新它,但可以保存新 ID 并删除旧 ID。请按照一些步骤更新 MongoDB 的 _id。步骤如下:第1步:第一步,需要将ObjectId存储到变量中。anyVariableName=db.yourCollectionName.fi...
    99+
    2023-10-22
  • mongodb如何更新数据
    mongodb中更新数据的方法:在mongodb中可以使用update()和save()方法来更新集合中的文档数据,update()语法例如“db.col.update( { "count" : { $gt : 1 } ...
    99+
    2022-10-09
  • mongodb如何更新表中所有数据
    要更新MongoDB表中的所有数据,可以使用updateMany()方法来更新所有文档。以下是一个示例,它将更新名为"student...
    99+
    2023-08-24
    mongodb
  • 如何对mongodb存储类JSON数据文档统计分析
    今天小编给大家分享一下如何对mongodb存储类JSON数据文档统计分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、文...
    99+
    2023-07-02
  • mongodb如何获取最新的数据
    在MongoDB中可以使用以下方法获取最新的数据:1. 使用find()方法查询所有数据,并按照时间戳(或其他排序字段)降序排序,然...
    99+
    2023-10-19
    mongodb
  • 如何使用 MongoDB 获取数组中包含另一个文档的所有文档?
    为此,只需在 MongoDB 中使用点表示法和 find() 即可。让我们创建一个包含文档的集合 -> db.demo465.insertOne( ... { ... id: 101, ... details: [{ .....
    99+
    2023-10-22
  • mongodb如何获取最新的数据库
    在MongoDB中,可以使用以下方法获取最新的数据库:1. 使用`show dbs`命令来列出所有的数据库。这将显示所有已创建的数据...
    99+
    2023-09-04
    mongodb 数据库
  • 如何压缩MongoDB的数据文件
    如何压缩MongoDB的数据文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MongoDB采用了磁盘空间预分配的机制,为...
    99+
    2022-10-18
  • mongodb如何对文档内数组进行过滤的方法步骤
    本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下: mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filt...
    99+
    2022-10-18
  • 如何查看mongodb里的数据库文件
    要查看MongoDB中的数据库文件,可以按照以下步骤进行操作:1. 找到MongoDB的数据目录。默认情况下,MongoDB的数据目...
    99+
    2023-08-31
    mongodb
  • 如何实现MySQL中更新数据的语句?
    如何实现MySQL中更新数据的语句?MySQL作为广泛使用的关系型数据库管理系统,提供了强大的功能来处理数据的更新。本文将详细介绍如何使用MySQL的更新语句来修改数据库中的数据,并提供具体的代码示例。首先,我们需要了解MySQL中更新数据...
    99+
    2023-11-09
    更新 MySQL 语句
  • thinkphp5如何将不变的数据更新为0
    这篇“thinkphp5如何将不变的数据更新为0”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp5如何将不变的...
    99+
    2023-07-05
  • Navicat如何生成更新数据库结构同步的数据库
    小编给大家分享一下Navicat如何生成更新数据库结构同步的数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、打开Navi...
    99+
    2022-10-19
  • 如何在Python中实现数组文件的实时更新?
    在Python中,实现数组文件的实时更新是非常常见的需求。在本文中,我们将介绍如何使用Python中的一些常见工具和技巧来实现这个功能。 数组文件的实时更新通常用于一些需要实时监控数据变化的应用场景,例如股票市场、气象预报和实时传感器数据等...
    99+
    2023-07-06
    实时 数组 文件
  • 如何在MongoDB中实现数据的多语言支持功能
    如何在MongoDB中实现数据的多语言支持功能摘要:随着全球化的发展,越来越多的应用程序需要支持多语言功能。本文将介绍如何在MongoDB中实现数据的多语言支持功能,包括数据结构设计、数据存储和数据查询等方面。同时,为了更好地理解和实操本文...
    99+
    2023-10-22
    MongoDB 多语言支持
  • 如何使用MongoDB实现数据的全文搜索功能
    如何使用MongoDB实现数据的全文搜索功能导语:随着信息化时代的迅猛发展,全文搜索功能成为了许多应用程序的必备功能。作为一个流行的NoSQL数据库,MongoDB也提供了强大的全文搜索能力。本文将介绍如何使用MongoDB实现数据的全文搜...
    99+
    2023-10-22
    MongoDB 全文搜索 数据实现
  • 在Oracle数据库中,丢失归档的情况下数据文件如何恢复?
        如果一个表空间的数据文件损坏,在有备份的情况下,那么可以使用数据文件的备份进行还原,但是还需要归档文件进行恢复,才能使数据文件到达一个最新的一致性状态,从...
    99+
    2022-10-18
  • angular+ionic的app如何实现上拉加载更新数据
    小编给大家分享一下angular+ionic的app如何实现上拉加载更新数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步...
    99+
    2022-10-19
  • vuex与组件data之间的数据更新如何实现
    这篇文章主要讲解了“vuex与组件data之间的数据更新如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuex与组件data之间的数据更新如何实现”吧!问题我们都知道,在Vue组件中...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作