是否可以扁平化 MongoDB 结果查询?

2024-01-21

我的 MongoDB 集合中有一个深度嵌套的集合。

当我运行以下查询时:

db.countries.findOne({},{'data.country.neighbor.name':1,'_id':0})

我最终在这里得到这个嵌套结果:

{"data" : {
  "country" : [
    {
      "neighbor" : [
        {
          "name" : "Austria"
        },
        {
          "name" : "Switzerland"
        }
      ]
    },
    {
      "neighbor" : {
        "name" : "Malaysia"
      }
    },
    {
      "neighbor" : [
        {
          "name" : "Costa Rica"
        },
        {
          "name" : "Colombia"
        }
      ]
    }
  ]
}}

现在,这就是我想要的:

['Austria', 'Switzerland', 'Malaysia', 'Costa Rica', 'Colombia']

or this:

{'name':['Austria', 'Switzerland', 'Malaysia', 'Costa Rica', 'Colombia']}

或其他类似的东西...这可能吗?


您可以使用$project & $unwind & $group of 聚合 http://docs.mongodb.org/manual/applications/aggregation/框架,使结果更接近您的要求。

> db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
                         {$unwind:'$a'},
                         {$unwind:'$a'},
                         {$group:{_id:'a',res:{$addToSet:'$a'}}})
  {
    "result" : [
        {
            "_id" : "a",
            "res" : [
                "Colombia",
                "Malaysia",
                "Switzerland",
                "Costa Rica",
                "Austria"
            ]
        }
    ],
    "ok" : 1
}

$unwind由于名称数组嵌套得很深,因此使用了两次。并且只有在以下情况下它才会起作用neighbor属性是一个数组。在您的示例中,一个邻居字段(马来西亚)不是一个数组

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

是否可以扁平化 MongoDB 结果查询? 的相关文章

随机推荐

  • 在整个交易过程中始终使用“现在”的价值

    我正在寻找在整个交易中使用一致的当前日期和时间值的指南 我所说的事务大致指的是应用程序服务方法 此类方法通常执行单个 SQL 事务 至少在我的应用程序中是这样 环境背景 答案中描述的一种方法这个问题 https stackoverflow
  • Grails 客户端验证

    您 如果您 如何使用 grails 管理客户端验证 您使用插件还是使用 javascript 框架反映您的约束 干杯 我个人没有使用过它们 但这两个插件可能会对您有所帮助 http grails org plugin javascript
  • 需要下一状态传播进行反向传播的神经网络强化学习

    我正在尝试构建一个包含卷积和 LSTM 使用 Torch 库 的神经网络 以通过 Q 学习或优势学习进行训练 这两者都需要在更新状态 T 的权重之前通过网络传播状态 T 1 必须进行额外的传播会降低性能 这很糟糕 但不是too坏的 然而 问
  • 优化 MySQL 导入(将详细 SQL 转储转换为快速 SQL 转储/使用扩展插入)

    我们正在使用 mysqldump 和选项 complete insert skip extended insert创建保存在 VCS 中的数据库转储 我们使用这些选项 和 VCS 可以轻松比较不同的数据库版本 现在导入转储需要相当长的时间
  • 德尔福和 i18n

    Delphi 是否以任何方式支持国际化 我已经看到我可以为项目添加不同的语言 但这似乎会创建 dfm 文件的多个实例 因此 语言不能在运行时更改 我说得对吗 您如何处理国际化 如果您这样做 有没有最佳实践 Delphi 附带了一些工具来执行
  • jQuery 发布请求(不是 AJAX)

    在 ASP NET MVC 应用程序中 我使用 jQuery 在按钮单击时发布数据
  • 当弹出窗口打开时禁用后台的所有内容

    我正在开发一个基于 HTML JQuery 和 CSS 的网页 我想在其中使用简单的 div 标签打开弹出窗口 我想在弹出窗口打开时禁用后台的所有内容 这意味着虽然弹出 div 对用户可见 但他或她不应该能够单击网页上的任何其他内容 弹出窗
  • 画布中的鼠标偏移 [fabric.js]

    我已经阅读了 3 5 个关于鼠标偏移的主题 但我仍然不明白哪里混乱了 就我而言 60 时一切正常 另外40 的鼠标是偏移的 有时对象位置与鼠标行为无关 IE 和 Chrome 是最混乱的 我尝试编辑样式表和父 div 但没有任何结果 最糟糕
  • 对象没有 hasOwnProperty 方法(即未定义)- IE8

    这看起来很奇怪 这是我在IE8控制台中的实验 typeof obj1 object obj1 hasOwnProperty typeof obj2 object obj2 hasOwnProperty undefined 关于什么可能导致这
  • 向 App Store 提交 iPhone 应用程序的流程? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否需要先支付 99 美元才能观看视频以向 App Store 提交 iPhone 应用程序 还是可以在任何地方免费获得 您可以加入开发者计划并免费观
  • Python正则表达式在集合内匹配

    测试时http gskinner com RegExr http gskinner com RegExr 在线正则表达式测试器 正则表达式 jpg bmp 当 jpg 或 bmp 存在时返回结果 但是 当我在 python 中运行此正则表达
  • SSRS 2005 缺少 Microsoft.ReportingServices.Interfaces.dll

    我在 c program files SQL Server 90 Tools Binn 中缺少此 DLL 引用 我假设这是因为我没有安装 2005 客户端 我安装了 2005 年的所有服务 数据库实例 报告服务实例 SSAS 和 SSIS
  • 持续更新文件

    最终 我需要将 Spotify API 中的信息提供给应用程序 以显示 当前歌曲 信息 包括提示时间 因此需要不断轮询 API 并更新应用程序轮询的数据源 我仍在尝试从流而不是文件的角度来思考数据 所以我想出了这个小实验来了解如何不断更新文
  • PM2 - 语法错误:严格模式之外尚不支持块范围声明

    我目前正在 Ubuntu 服务器上安装 NodeJS 服务 该应用程序是用 CoffeeScript 编写的 并且可以自行运行良好 这就是我设置项目的方式 cd test project nvm use v4 9 1 npm install
  • Zeroinfl“系统在计算上是奇异的”,而预测变量没有相关性

    我正在尝试对一年中工人缺勤天数的计数数据 因变量 进行建模 我有一组预测变量 包括有关工人 有关他们的工作等的信息 其中大多数是分类变量 因此 需要估计大量系数 83 但由于我有超过 600 000 行 我认为这应该不会有问题 此外 我的数
  • 当你调用一个包含yield的函数时会发生什么?

    I read here https stackoverflow com questions 19302530 python generator send function purpose 60042174 noredirect 1 comm
  • 如何创建支持 Ruby 的 shell 命令?

    我正在创建一个 gem 我希望能够在其中使用 shell 命令来执行 gem 中的功能 在更简单的上下文中 我需要创建一个 shell 脚本 该脚本在触发 shell 命令时执行带有选项的 Ruby 函数 做到这一点最简单的方法是什么 例如
  • std::tuple 和标准布局

    如果所有成员std tuple are of 标准布局类型 https stackoverflow com a 7189821 734069 就是它std tuple本身标准布局 用户定义的复制构造函数的存在使其变得不平凡 但我想知道它是否
  • 如何显示wordpress页面内容?

    我知道这真的很简单 但由于某种原因我没有想到 而且谷歌今天也没有帮助我 我想输出页面内容 该怎么做 我以为是这样的 Marc B 感谢您的评论 帮助我发现了这一点 p Sorry no posts matched your criteria
  • 是否可以扁平化 MongoDB 结果查询?

    我的 MongoDB 集合中有一个深度嵌套的集合 当我运行以下查询时 db countries findOne data country neighbor name 1 id 0 我最终在这里得到这个嵌套结果 data country ne