【问题标题】:MongoDB query to group byMongoDB查询分组
【发布时间】:2023-03-09 14:46:02
【问题描述】:

我在测试集合中有这种格式的数据

{car_id: "1", owner_id: "a"}
{car_id: "1", owner_id: "b"}
{car_id: "1", owner_id: "c"}
{car_id: "1", owner_id: "d"}
{car_id: "1", owner_id: "a"}
{car_id: "1", owner_id: "b"}
{car_id: "1", owner_id: "c"}
{car_id: "1", owner_id: "d"}
{car_id: "2", owner_id: "a"}
{car_id: "2", owner_id: "b"}
{car_id: "2", owner_id: "c"}
{car_id: "2", owner_id: "d"}
{car_id: "2", owner_id: "a"}
{car_id: "2", owner_id: "b"}
{car_id: "2", owner_id: "c"}
{car_id: "2", owner_id: "d"}
{car_id: "3", owner_id: "a"}
{car_id: "3", owner_id: "b"}
{car_id: "3", owner_id: "c"}
{car_id: "3", owner_id: "a"}
{car_id: "3", owner_id: "b"}
{car_id: "3", owner_id: "c"}
{car_id: "3", owner_id: "d"}
{car_id: "3", owner_id: "e"}
    ...

我们需要以这种方式查询后输出

{
    "result" : [
        {
            "for_cars_id" : 1,
            "owner_id" : "a",
            "owner_id_count: 2
        },
        {
            "for_cars_id" : 1,
            "owner_id" : "b",
            "owner_id_count: 2
        },
        {
            "for_cars_id" : 1,
            "owner_id" : "c",
            "owner_id_count: 2
        },
        {
            "for_cars_id" : 1,
            "owner_id" : "d",
            "owner_id_count: 2
        },
        {
            "for_cars_id" : 2,
            "owner_id" : "a",
            "owner_id_count: 2
        },
        {
            "for_cars_id" : 2,
            "owner_id" : "b",
            "owner_id_count: 2
        }
                       ...
                       ...

    ],
    "ok" : 1
}

我尝试在链接 (Group count with MongoDB using aggregation framework) 的帮助下执行此操作,但没有得到适当的结果,请帮助我如何找到此输出

谢谢

【问题讨论】:

    标签: mongodb aggregation-framework


    【解决方案1】:

    这很简单:

    db.test.aggregate({
      $group: {
        _id: {
          car_id: "$car_id",
          owner_id: "$owner_id"
        },
        owner_id_count: { $sum: 1 }
      }
    }, {
      $project: {
        _id: 0,
        for_cars_id: "$_id.car_id",
        owner_id: "$_id.owner_id",
        owner_id_count: 1
      }
    })
    

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      相关资源
      最近更新 更多