【问题标题】:Reactjs Counting two element duplicates in object array and storing them with count as objectReactjs 计算对象数组中的两个元素重复项并将它们存储为对象计数
【发布时间】:2023-02-09 03:41:05
【问题描述】:

我想显示名称、用户部分以及他们借用的次数。

我正在努力将它们分类为对象。

来自我的查询的我的数组数据

    const borrowerRanking = await Return.find({}).populate({
            path: 'userId',
            select: 'name course -_id'
        }).select('name course -_id')

显示这个结果:

[
  {name: 'user1', course: 'BSIT'},
  {name: 'user1', course: 'BSIT'},
  {name: 'user2', course: 'BSIT'},
  {name: 'user1', course: 'BSIT'},
  {name: 'user3', course: 'BTIT'},
  {name: 'user3', course: 'BTIT'},
  {name: 'user2', course: 'BSIT'}
]

我想创建一个新数组,其数据结果如下:

[
  {name: 'user1', course: 'BSIT', count:'3'},
  {name: 'user2', course: 'BSIT', count:'2'},
  {name: 'user3', course: 'BTIT', count:'2'}
]

【问题讨论】:

  • 它来自我从 MongoDB 过滤的查询结果
  • 抱歉,我是堆栈溢出的新手,所以我不知道如何正确格式化我的评论
  • 哦,对不起,是的,我刚刚编辑了它。谢谢你教我

标签: node.js reactjs mongodb


【解决方案1】:

如果您在 MongoDB 聚合中执行逻辑,它可能更容易(并且可能更有效)。

db.collection.aggregate([
  {
    $group: {
      _id: {
        name: "$name",
        course: "$course"
      },
      count: {
        $sum: 1
      }
    }
  },
  {
    $project: {
      _id: 0,
      name: "$_id.name",
      course: "$_id.course",
      count: 1
    }
  }
])

Mongo Playground

【讨论】:

    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2021-07-06
    • 2014-02-24
    • 2018-09-15
    相关资源
    最近更新 更多