删除嵌套文档数组中的嵌入文档

2024-04-26

我的架构如下所示:

"content" : [
        {
            "_id" : ObjectId("4fc63de85b20fb72290000f8"),
            "assets" : [
                {
                    "path" : "temp/4f840af9565832fa14000002/4f840b1e565832fa14000007/4fc63de85b20fb72290000f7/content/I_Understanding_and_Measuring.pdf",
                    "_id" : ObjectId("4fc63def5b20fb722900010e")
                },
                {
                    "path" : "temp/4f840af9565832fa14000002/4f840b1e565832fa14000007/4fc63de85b20fb72290000f7/content/me.jpg",
                    "_id" : ObjectId("4fc63e4d5b20fb722900015d")
                }
            ],
            "content" : "",
            "name" : "Downloads"
        },
        {
            "_id" : ObjectId("4fc63dfd5b20fb722900012a"),
            "assets" : [
                {
                    "path" : "temp/4f840af9565832fa14000002/4f840b1e565832fa14000007/4fc63de85b20fb72290000f7/content/me.jpg",
                    "_id" : ObjectId("4fc63e055b20fb7229000147")
                },
                {
                    "path" : "temp/4f840af9565832fa14000002/4f840b1e565832fa14000007/4fc63de85b20fb72290000f7/content/thierry-henry-12-31-11-1.jpg",
                    "_id" : ObjectId("4fc63e525b20fb7229000164")
                }
            ],
            "content" : "",
            "name" : "Bio"
        }
    ],

我可以通过以下方式检索该文档:

db.presentations.find({'content.assets._id': ObjectId('4fc63def5b20fb722900010e')})`

我已尝试使用以下行从资产集合中删除文档,但无济于事:

db.presentations.update(
  {'content.assets._id': ObjectId('4fc63def5b20fb722900010e')}, 
  {$pull: {'content.assets': {'_id': ObjectId('4fc63def5b20fb722900010e')}}}
)

我正在尝试从相应的项目中删除一个项目assets按其 id 收集。有任何想法吗?


你太近了!请记住,最外层的“内容”本身就是一个数组。因此以下 2 个字符更改有效,请使用内容.$.资产在 $pull 的值内。

db.presentations.update(
  {'content.assets._id': ObjectId('4fc63def5b20fb722900010e')}, 
  {$pull: {'content.$.assets': {'_id': ObjectId('4fc63def5b20fb722900010e')}}}
)

向前放大。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除嵌套文档数组中的嵌入文档 的相关文章

随机推荐

  • Android 2.X 和 3.X 上的 SQLiteOpenHelper 问题

    所以我犯了一个很大的错误 在 android 4 0 上测试我的代码 并认为它在其他版本上也能正常工作 但我在使用 SQLiteOpenHelper 时遇到 2 X 和 3 X 的问题 首先是代码 public class HelperDB
  • 未创建日志文件

    我需要一个可以在项目中的多个类中使用的全局记录器 我想在 ini 文件中设置记录器设置 我开始下面的例子here https stackoverflow com questions 20086754 how to use boost log
  • 获取 pandas 布尔系列为 True 的索引列表

    我有一个带有布尔条目的熊猫系列 我想获得一个索引列表 其中的值是True 例如输入pd Series True False True True False False False True 应该产生输出 0 2 3 7 我可以通过列表理解来
  • 查找大于或等于某个值的所有值

    假设我有下表 Team Score AA 81 BB 67 CC 44 DD 1 5 JJ 279 LL 49 TT 201 GG 158 MM 32 HH 89 我想要将所有得分超过 80 的球队放在另一个表中 我尝试了 Index Ma
  • Web 配置转换不适用于 Visual Studio Online、VS2013 和 Azure

    我有一个 MVC5 网站 使用 Visual Studio Online TFS 的持续集成成功地将暂存和生产版本部署到 Azure 我已经关注了这篇博文 使用自定义部署脚本通过 git 持续交付到 Azure 网站 http chrisk
  • vNext:使用 razor 视图而无需托管的控制台应用程序

    我正在创建执行一些文件转换的控制台应用程序 这些转换可以轻松完成 从输入文件创建模型 然后为输出执行 razor 模型 为了在 IDE 中实现此功能 我使用了 Visual Studio 2015 预览版并创建了一个使用 MVC 的 vne
  • 设置 Azure 中 BLOB 存储的保留期

    我想手动设置保留期 以便在保留期结束后我可以删除存档数据 请向我建议任何可以帮助我的链接或方式 请建议我如何在我的门户中编码来设置它 我已经成功配置了生命周期管理政策 https learn microsoft com en us azur
  • Delphi 拼写检查器

    您好 我正在寻找一个与 Delphi 7 2010 一起使用的免费拼写检查器 任何人都可以给我一个指向吗 我想添加我们在 SynProject 编辑器中使用的 HunSpell 库 它包含在该 GPL 工具的源代码中 http synops
  • 如何将 XML 数据解析为 PHP 变量

    我对 php 很平庸 对 XML 一无所知 如果你能详细一点 它将帮助我学习 我正在尝试使用 PHP 编程来执行此链接的脚本 VARIABLE ZIP 是在表单中输入的实际邮政编码 该表单将在上面的链接中提交信息 该链接的输出创建了一个 X
  • iOS NSDictionary 保存到 NSUserDefaults 不保存值

    我正在尝试保存一个NSDictionary数组值到NSUserDefaults但我遇到了一些奇怪的麻烦 My NSDictionary has NSStrings for keys和每个value is a NSArray of NSNum
  • 在java中用另一个字符串替换字符串

    什么函数可以将一个字符串替换为另一个字符串 示例 1 什么将取代 HelloBrother with Brother 示例 2 什么将取代 JAVAISBEST with BEST The replace http download ora
  • Django 1.7 中的迁移

    我目前正在参与一个使用 Django 1 7 开发版本的项目 我想使用 makemigrations 和 migrate 将我在模型中所做的更改 添加字段 删除模型等 传播到数据库模式中 命令 我向应用程序中的模型之一添加了 年龄 字段 c
  • 按日期 +/- 2 个工作日对 pandas 时间序列进行切片

    具有以下时间序列 In 65 p Out 65 Date 2008 06 02 125 20 2008 06 03 124 47 2008 06 04 124 40 2008 06 05 126 89 2008 06 06 122 84 2
  • 创建持久的 php 登录 cookie 会话

    我试图让我的登录会话持续更长时间 这样人们就不会过早退出我的网站 例如 制作一篇博客文章并在提交时丢失 因为 php 的 cookie 过期了 理想情况下 我想给他们一个 2 小时的会话 他们不会注销 每次加载页面时都会刷新 下面的代码片段
  • bootstrap-datepicker 在选择日期时不会更新 AngularJS 模型

    我正在使用 AngularJS Bootstrap 的日期选择器 v1 6 4 https github com eternicode bootstrap datepicker https github com eternicode boo
  • iOS - 更改屏幕色温[重复]

    这个问题在这里已经有答案了 我想构建一个像 f lux 这样的 iOs 应用程序 它根据白天更改设备的屏幕亮度 我知道我必须越狱我的设备 但我不知道如何实现这个应用程序 请建议我任何有用的 API 来做到这一点 提前致谢 iOS 已经内置了
  • 如何使用 j2me 将图像保存到照片库

    我正在使用 j2me 为诺基亚 三星 LG 等制作应用程序 我想将图像保存到手机的照片库中 但我不知道我用什么路径来保存图像 看这篇文章 FileConnection API 入门 http developers sun com mobil
  • Node npm windows 文件路径太长,无法安装包

    情况 我想在Windows托管的开发环境中使用gulp和相关的前端工具链 我在尝试使用 Browser Sync 之类的 gulp 插件时遇到了困难 因为 node modules 文件夹图呈扇形分布 使得 Windows 文件路径太长而无
  • 字典键有字符限制吗?

    在 NET 中我可以使用任何字符串作为字典键吗 这是模板引擎的一部分 我计划允许用户添加他们的自定义标头和值 标题将类似于 X 的值 或 分析和 XYZ 报告摘要 我担心他们是否会在罕见字符或类似内容中遇到异常 我假设存在大小限制 但希望它
  • 删除嵌套文档数组中的嵌入文档

    我的架构如下所示 content id ObjectId 4fc63de85b20fb72290000f8 assets path temp 4f840af9565832fa14000002 4f840b1e565832fa14000007