0

テストコレクションにこの形式のデータがあります

{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
}

リンク(集約フレームワークを使用したMongoDBでのグループ数)を使用してこれを実行しようとしましたが、適切な結果が得られませんでした。この出力を見つける方法を教えてください

ありがとう

4

1 に答える 1

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
  }
})
于 2013-06-12T19:57:15.787 に答える