如何将 MongoDB 查询转换为字典

2024-02-03

我的 MongoDB 中有一个集合:

{ userId: 1234, name: 'Mike' }
{ userId: 1235, name: 'John' }
...

我想得到表格的结果

dict[userId] = document

换句话说,我想要一个结果,它是一个字典,其中userId是键,文档的其余部分是值。

我怎样才能做到这一点?


您可以使用$arrayToObject为此,您只需将其格式化为数组k, v before.

目前尚不清楚您是否想要一个字典用于所有文档,或者每个文档都采用字典格式。我猜你想要第一个选项,但我同时展示了两个选项:

一本字典对于所有数据*,需要$group(这也格式化数据):

db.collection.aggregate([
   {
    $group: {
      _id: null,
      data: {$push: {k: {$toString: "$userId"},  v: "$$ROOT"}}
    }
  },
  {
    $project: {data: {$arrayToObject: "$data"}}
  },
  {
    $replaceRoot: {newRoot: "$data"}
  }
])

看看它是如何工作的游乐场示例 - 一个字典 https://mongoplayground.net/p/qMYMvOCO6xS

*请注意,在此选项中,所有数据都插入到一个文档中,并且文档作为限制大小。

词典格式:如果您想以不同的结果获取所有文档,但采用字典格式,只需将聚合的第一步替换为:

 {
    $project: {
      data: [{k: {$toString: "$userId"}, v: "$$ROOT"}],
      _id: 0
    }
  },

看看它是如何工作的游乐场示例 - 每个文档的字典 https://mongoplayground.net/p/rLaq7WqgPsC

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

如何将 MongoDB 查询转换为字典 的相关文章

  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • python,在数据框中存储字典

    我构建了一个 pandas 数据框 它在每个单元格中存储一个简单的字典 例如 Sales 0 Revenue 0 我可以通过以下方式从数据帧中检索特定值 df columnA index100 Revenue 但现在我想绘制一个图表 其中包
  • 如何访问数据框中的一行嵌套字典

    我有一个 json 文件 如下所示 file name main question no Q 1 question what is answer user John comment It is defined as value number
  • MongoDB 复合键:InvalidOperationException:{document}.Identity 不受支持

    我在水合由复合 ID 组成的类时遇到问题 该复合 ID 又具有基类 我收到一条错误消息InvalidOperationException document Identity is not supported 我试图写入数据库的类如下 pub
  • 如何从数组中删除重复的条目?

    在下面的示例中 Algorithms in C 出现两次 The unset修饰符可以删除特定字段 但如何从字段中删除条目 id ObjectId 4f6cd3c47156522f4f45b26f favorites books Algor
  • 从字典创建一个数据框,键和值都是行

    我有一个字典 其中键是患者 ID 所有键的值都相同 1 2 3 表示每个患者将访问诊所 3 次 如何将其转换为键和值都是行的数据框 字典 patients Patient01 patient02 patient03 visits 1 2 3
  • 使用map.get()时使用java Map.containsKey()是多余的

    一段时间以来 我一直想知道在最佳实践中是否允许避免使用containsKey 方法上java util Map而是对结果进行空检查get 我的理由是 两次查找值似乎是多余的 首先是查找containsKey 然后再次为get 另一方面 大多
  • 查找字典中列表的最大值

    我有一个字典 每个键后面都有一个存储的列表 看起来像这样 dict with values u New York u New York u NY datetime datetime 2014 8 13 0 0 10 u New York u
  • 具有多行值的 PEP8 多行字典

    我使用 Black for Python 它符合 PEP8 https github com psf black the black code style 它删除两行长值字符串的第二行的缩进 mydict key0 value0 key1
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 无缝滚动瓷砖地图

    我正在开发一个自上而下的角色扮演游戏 并且想要实现无缝滚动地图 也就是说 当玩家探索世界时 地图之间没有加载屏幕 也没有通往下一个区域的 门 我有两种方法可以打破世界 在顶层 我有 区域 它只是 9 个 地图 的集合 这些区域仅由目录表示
  • Mongodb - 为现有集合添加架构

    我的 MongoDB 中有一个包含 1300 万条记录的集合 不幸的是 当我创建这个集合时 没有为其创建模式 我想知道除了备份整个数据库 创建架构并上传所有数据之外 是否有任何方法可以添加 JSON 架构 您可以使用以下方法将 JSON 架
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • Mongoose.js instance.save() 回调未触发

    var mongo require mongoose var connection mongo createConnection mongodb 127 0 0 1 test connection on error function err
  • spring-data-mongodb 在重新水化对象时到底如何处理构造函数?

    我读过了http static springsource org spring data data mongo docs 1 1 0 RELEASE reference html mapping chapter http static sp
  • 是否可以提高 Mongoexport 速度?

    我有一个 1 3 亿行的 MongoDB 3 6 2 0 集合 它有几个简单的字段和 2 个带有嵌套 JSON 文档的字段 数据以压缩格式 zlib 存储 我需要尽快将其中一个嵌入字段导出为 JSON 格式 然而 mongoexport 需
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • MongoDB 过滤嵌套对象中的数组元素

    我有一个文件如下 id ObjectId 56423b2558cb340599108b35 test source member abc member xyz 我想过滤数组元素 xyz 并且我正在尝试以下查询 db coll find te
  • Erlang dict的时间复杂度

    我想知道 Erlang OTP 是否dict模块是作为哈希表实现的 在这种情况下它是否能提供这样的性能 平均情况 Search O 1 n k Insert O 1 Delete O 1 n k 最坏的情况下 Search O n Inse

随机推荐

  • 矩阵中元素的频率 - Matlab

    从我在 matlab 中运行的函数中我得到一个 225x400 矩阵 我想计算这个矩阵中每个元素的频率 这意味着我需要计算每个元素在矩阵上出现的次数 我的矩阵名称是 Idiff 我在用 B unique Idiff 找到 Idiff 矩阵中
  • Android TV以编程方式切换HDMI输入端口

    我想问一下经验丰富的程序员 是否有一种方法可以通过直接安装在电视 Sony Bravia 上的应用程序以编程方式切换 HDMI 输入端口 比方说 在应用程序启动时 电视将其输入切换为 HDMI3 Android 中有通用的 API 还是特定
  • 消除外边距 (Ggplot2 / geom_sf)

    我一直想知道是否可以避免 Ggplot2 包含这个外部边距 绘图区域周围黑框之外的空白区域 我认为又名绘图边距 下面是我的代码 我可以很好地控制绘图边距 但我尝试了不同的方法来减少外部边距 但到目前为止没有任何效果 我还想澄清一下 我知道在
  • 具有特殊条件的子集和

    在您回复另一个问题的链接或将其作为重复项关闭之前 请仔细阅读该问题 这与该问题的标准变体不同 我已经搜索了很长时间 所以我很确定没有这里没有这样的问题 我需要找到是否最小可能的S这是一些的总和X i 的子集那是 gt T 某个目标值 小于全
  • elasticsearch索引已删除

    我的 Elasticsearch 服务器面临严重问题 我在 symfony2 项目上使用 ES 1 7 和 fosElasticaBundle 今天ES索引被删除了两次 我也搞不懂为什么 以下是我可以在 cluster log 中读取的日志
  • Tensorflow 入门 - 将图像分割为子图像

    这是我第一次使用卷积神经网络和 Tensorflow 我正在尝试实现一个能够extract来自数字视网膜图像的血管 我正在与公开可用的驱动数据库 http www isi uu nl Research Databases DRIVE 图像为
  • 将 C++ 中的 unicode 字符串转换为大写

    我们如何在 C 或 C 中将多语言字符串或 unicode 字符串转换为大写 小写 如果您的系统已经采用 UTF 8 请使用std use facet http en cppreference com w cpp locale use fa
  • laravel:在 null 上调用成员函数 delete()

    当我尝试通过单击删除按钮向帖子添加删除功能时 出现此错误 我哪里做错了 删除PostController中的post函数 public function getDeletePost post id post Post where id po
  • 在 bash 中将数组作为参数传递

    如何将数组作为参数传递给 bash 函数 你可以通过多个数组作为参数使用这样的东西 takes ary as arg declare a argAry1 1 echo argAry1 declare a argAry2 2 echo arg
  • 在 IOStreams 库中使用ignore(numeric_limits::max()) 是否可以处理任意大量的流?

    在 C 标准 第 27 6 1 3 24 节 中 对于 流媒体ignore IOStreams 库中的函数 这意味着如果您为 n 提供一个参数numeric limits max 它将继续忽略字符 永远直到找到分隔符 甚至远远超出实际 流大
  • Scala 的元组展开的细微差别

    当尝试将元组展开为 val 时 我注意到 scala 中的以下行为 scala gt val A B C 1 2 3
  • 应用程序未在发布模式下进入 Posix 信号处理程序

    我正在尝试在 Linux Arm 设备上正常关闭我的控制台应用程序 发送的信号是SIGTERM 我用新的实现了 Posix 信号处理程序PosixSignalRegistration Create https learn microsoft
  • stringdist 包中的 Jaccard 相似度来匹配字符串中的单词

    我想使用 stringdist 函数中的 Jaccard 相似度来确定词袋的相似度 据我所知 使用 Jaccard 只能匹配字符串中的字母 c lt c cat dog person d lt c cat dog ufo stringdis
  • 如何使用 Maven 使用私钥通过 SCP 进行部署

    在Windows上使用Maven 通过SCP传输 使用私钥 这似乎是一个非常简单且有记录的过程 但这对我不起作用 在settings xml中
  • 在 2 个 Android 应用程序之间共享 SQLite 数据库?

    我需要在两个应用程序之间共享一个数据库 我知道数据库将在 data data MY PACKAGE databases 上创建 由于包名称不同 当我在任一应用程序上创建数据库时 是否可以定义一个包名称的路径 谢谢 更新 下面描述的方法依赖于
  • Javascript 类与对象,优缺点?

    在我最近的 javascript 程序中 主要是为了乐趣和概念验证 我有很多不同类型的对象 并且每种对象都有相当数量的 实例 所以我想我应该为这些使用类 但是由于它们非常简单 我可以直接直接构造它们而不是使用类 我的意思的例子 I m ma
  • 使用 pyodbc 将 pandas 数据帧高效插入到 MS SQL Server

    我正在尝试使用 pyodbc 将 pandas 数据帧更新插入到 MS SQL Server 我之前使用过类似的方法来进行直插入 但是这次我尝试的解决方案非常慢 有没有比我现有的更简化的方法来完成更新插入 sql connect pyodb
  • ElasticSearch:嵌套查询未返回所需结果

    我是 Elastic Search 的新手 在实现一些查询时遇到一些问题 以下是我的索引结构 cl 1 aliases mappings properties timestamp type date version type long cl
  • write.table 到新目录

    有没有办法使用 write 和 write table 使输出文件位于与工作目录不同的目录中 它尝试在文件名之前设置输出文件的路径 但只收到一条错误消息 如果您使用的是 Windows R如果看到的话就会知道要走出当前目录C 首先 可能还有
  • 如何将 MongoDB 查询转换为字典

    我的 MongoDB 中有一个集合 userId 1234 name Mike userId 1235 name John 我想得到表格的结果 dict userId document 换句话说 我想要一个结果 它是一个字典 其中userI