【问题标题】:how to use group or bucket in mongodb?如何在 mongodb 中使用组或存储桶?
【发布时间】:2018-02-16 13:46:03
【问题描述】:

我的数据看起来像:

如何按专业排列和分组数据。

我试过这样,但结果是不同的。格式。

var data = db.collection('hms').aggregate([
    { $match: { speciality: doctorSpeciality } },
    { $project: { doctor: 1, speciality: 1, meetting_hours: 1, hospital:1 } },
    {
        $group: {
            "_id": "$doctor_speciality",
            "speciality": {$push:"$speciality"},
            "doctor":{$push :"$doctorSpeciality"},
            "hospital":{$push : "$hospital_name" },
            "meetting_hours":{$push: "$meetting_hours"}
        }
    }
]);
data.toArray(function(err, doc){
    console.log("result :::" ,doc);
}); 

我想要这样的格式:

0:[
   { doctor:Hussain,speciality:Physician,hospital:HMS,date:2018-2-1},
   { doctor:Hussain,speciality:Physician,hospital:HMS,date:2018-2-2}
 ],
1: [{doctor:Reza,speciality:Physician,hospital:HMS,date:2018-2-1}]

等等。

我正在使用 MongoClient 驱动程序。

有人可以帮助我或给我一些提示吗?

【问题讨论】:

  • 请提供完整的文件以便我们提供帮助。例如,您将"$doctor_speciality" 分组为您的_id,然后$push "$doctorSpeciality",这是一个错字吗?
  • 哦!这是我的错字,是医生专业。

标签: mongodb mongodb-query aggregation-framework


【解决方案1】:

您只需要调整一次即可推送所有值,而不是一次推送一个字段。

试试

db.collection('hms').aggregate([
  {"$match":{"speciality":doctorSpeciality}},
  {"$project":{"doctor":1,"speciality":1,"meetting_hours":1,"hospital":1}},
  {"$group":{
    "_id":"$doctor_speciality",
    "data":{
      "$push":{
        "speciality":"$speciality",
        "doctor":"$doctor_speciality",
        "hospital":"$hospital_name",
        "meetting_hours":"$meetting_hours"
      }
    }
  }}
])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多