为了账号安全,请及时绑定邮箱和手机立即绑定

Mongodb Query,搜索文档内的数组元素分组并计算每个元素

Mongodb Query,搜索文档内的数组元素分组并计算每个元素

慕哥6287543 2021-08-04 10:38:39
假设我有一个包含多个文档的集合,其结构如下:{  _id: "id12345",  objects: ["123","456", "789"]}现在我想创建一个查询,在其中传递对象数组并获取数组中每个元素在文档中的出现次数,如下所示:查询输入:["123","321"] 输出:{  "123": 1,  "321": 0}我只想通过一个查询来执行此操作,传递一个数组,我知道我可以一个接一个而不是一个数组轻松地做到这一点,但这不是目的。
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

一般来说,获得这一点的查询非常简单,因为不建议将值切换到数据层中的键,而是在表示层中切换更多。


所以这:


db.collection.aggregate([

  {

    $unwind: "$objects"

  },

  {

    $group: {

      _id: "$objects",

      count: {

        $sum: 1

      }

    }

  }

])

会给你数字_id和一个count出现次数的字段。然后你可以在你的应用程序中按摩它,让它看起来像你想要的那样。


查看完整回答
反对 回复 2021-08-04
  • 2 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信