MongoDB,如何对文档进行分组

2024-01-03

我的收藏有这样的数据:

[
  {
    "code": 1,
    "location": "1 QUEEN STREET",
    "_id": "1",
  },
  {
    "code": 1,
    "location": "2 KING STREET",
    "_id": "2"
  },
  {
    "code": 2,
    "location": "1 QUEEN STREET",
    "_id": "3"
  },
  {
    "code": 2,
    "location": "2 KING STREET",
    "_id": "4"
  },
  {
    "code": 2,
    "location": "2 KING STREET",
    "_id": "5"
  }

]

查找将按“位置”对文档进行分组,并向每个文档添加一组代码,其中包含每个唯一代码的计数。

输出将是这样的:

[
  { "location": "1 QUEEN STREET", "codes":["code1":1,"code2":1]},
  { "location": "2 KING STREET", "codes":["code1":1,"code2":2]}
]

我尝试过这样的查询:

aggregate([{ $group : { _id : "$location", codes: { $addToSet: "$code",count: { $sum: 1 } } } }])

aggregate([{ $group : { _id : "$location", codes: {$group:{_id:"$_code",count:{$sum :1}}} } }])

谢谢你的帮助。


aggregate(
[
    { $group : { 
            _id : { location: "$location", code: "$code"},
            count: { $sum:1 }
        } 
    },
    { $group: {
            _id: "$_id.location", 
            codes: {$addToSet: {"code":"$_id.code", "count":"$count"}}
        } 
    },
    { $project: { location: "$_id", codes: 1, _id: 0}},
]
)

Result:

{ "codes" : [ { "code" : 1, "count" : 1 }, { "code" : 2, "count" : 1 } ], "location" : "1 QUEEN STREET" }
{ "codes" : [ { "code" : 1, "count" : 1 }, { "code" : 2, "count" : 2 } ], "location" : "2 KING STREET" }

注意:无法实现您想要的输出,列表中的元素存在格式错误,您应该使用字典,{}.

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

MongoDB,如何对文档进行分组 的相关文章

  • 从命令行创建 MongoDB 用户

    我已经建立了一个 MongoDB 数据库admin仅具有管理权限的用户 无权读取或写入数据库 我现在想做的是 添加新数据库 并向该数据库添加一个新用户 并且 我需要从命令行执行此操作 所以我尝试 mongo admin u admin p
  • 使用 Mongoid 将整个模型设为只读

    我看到 Mongoid 支持只读属性 有没有办法将整个文档或整个集合 模型类标记为只读 您可以访问fields类属性并将哈希的键映射到attr readonly 例如 class Model include Mongoid Document
  • 为 Heroku 上的 Mongo Labs 数据库配置 Node.js 连接字符串

    我的 Web 应用程序 基于 Node js 和 Express 构建 在本地运行良好 但当我将其部署到 Heroku 时 我无法连接到我的 Mongo Labs 数据库 我已更改 app js 文件中的连接字符串 以正确反映新 Herok
  • 将 Mongo 集合转储为 JSON 格式

    有没有办法将 mongo 集合转储为 json 格式 无论是在 shell 上还是使用 java 驱动程序 我正在寻找性能最好的一个 Mongo 包含一个 mongoexport 实用程序 参见文档 https docs mongodb c
  • MEAN 堆栈文件上传

    我最近开始使用 MEAN Stack 进行编程 目前正在实现某种社交网络 一直使用 MEAN io 框架来做到这一点 我现在的主要问题是让文件上传正常工作 因为我想做的是将文件从表单接收到 AngularJS 控制器中 并将其与更多信息一起
  • 如何统计MONGODB中所有唯一值? [复制]

    这个问题在这里已经有答案了 date 2017 09 04 description DD from my employer1 amount 1000 33 date 2017 09 06 description DD from my emp
  • 是否可以将环境变量添加到 MongoDB 配置文件中?

    我正在使用 YAML 语法配置 MongoDB 副本集 但是 我想使用 MONGODB HOME 环境变量指向数据库 storage dbPath ENV MONGODB HOME data db 我尝试过使用 等 但没有成功 可以这样做吗
  • NodeJS、Mongoose:如何使用 mongoose 获取相关数据

    我有 2 个集合 它们是一对多的关系 如何使用猫鼬获取相关数据作为嵌套文档 我有 2 个模式 它们是这样相关的 var userSchema mongoose Schema name String age Number var postSc
  • Mongoose __v 什么时候改变

    根据http aaronheckmann tumblr com post 48943525537 mongoose v3 part 1 versioning http aaronheckmann tumblr com post 489435
  • Node js POST请求错误错误[ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头

    我使用 Node JS Express 和 Mongo DB 开发了 REST 服务 我已经定义了一个 POST 请求来将用户添加到数据库表中 当我尝试 在本地主机上 POSTMAN 的 REST 服务时 他会工作并将用户添加到表中 但节点
  • 合并两个 $or 语句

    我正在尝试执行一个由两个组成的查询 or s Date1 Date2 NULL NULL NULL TODAY NULL TOMRW TODAY TODAY TODAY NULL TOMRW NULL 我已经标记了与星号匹配的行 Date1
  • MongoDB 添加以变量值命名的新字段

    我的问题是 鉴于像这样的文件很少 deliveryDay 2021 01 14 plate name pasta quantity 1 deliveryDay 2021 01 16 plate name pasta quantity 3 d
  • 如何根据 node.js 中用户的输入创建 mongodb 查询?

    目前在我的应用程序中我存储了不同的论坛帖子 用户可以添加新消息并创建新帖子 其他用户在显示内容时可以对其进行过滤 这样他们就不会看到他们之前阻止的特定用户上传的内容 每个用户都表示为以下组合device id and display nam
  • Mongoose update 更新数组内的嵌套对象

    我正在尝试查询和更新名册数组 roster schedule monday start 中的元素 然后更新本示例中的值 monday start 这两个键需要是动态的 我认为方法会是这样的 通过 id查找文档 通过 id 在数组中查找匹配对
  • 将 mongoid 会话设置为只读

    我有不同的会话mongoid yml 其中一个会话提供来自静态 mongo 数据库的数据 我想知道是否有可能以只读模式 加载 会话 以便不进行任何更改save create destroy or destroy all可以制作 我的mong
  • MongoDB:查询速度慢,即使有索引

    我有一个网页 它使用 MongoDB 来存储和检索各种测量结果 突然 在某个时候 我的网页变得如此缓慢 以至于无法使用 事实证明 我的数据库是罪魁祸首 我进行了搜索 但没有找到任何解决我的问题的方法 我很抱歉 因为我对 MongoDB 还很
  • Mongo中如何定义每个分片的分片范围?

    比方说 该文件是 x Number 我有 3 个碎片 除了自动分片之外 我可以具体定义 shard1 仅包含数据 x 你可以 可以手动预分割块 如下所述 http www mongodb org display DOCS Splitting
  • bean 实例化失败:指定的类是一个接口

    我在创建用于依赖注入的 bean 时遇到问题 这是场景 我正在处理 MongoDB 存储库 我还创建了一个使用它的类 我正在尝试实例化两者的 bean 实例 MongoDB 存储库 Repository public interface P
  • Spring boot 2.0.5.RELEASE和mongo 4.0连接问题

    我正在关注使用 MongoDB 访问数据教程春季网站 https spring io guides gs accessing data mongodb 我将 Mongo DB 服务器版本 4 安装为服务当我使用客户端连接到它时 它的身份验证
  • MongoDb 如何按月和年聚合

    我是 mongodb 新手 正在尝试学习 MongoDB 查询 id ObjectId 59815d4704ca1760a45957ca userEmail email protected cdn cgi l email protectio

随机推荐