Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 聚合展开Mongo对象_Mongodb - Fatal编程技术网

Mongodb 聚合展开Mongo对象

Mongodb 聚合展开Mongo对象,mongodb,Mongodb,我在MongoDB中有一个具有object类型的view属性的文档: { "_id" : ObjectId("5c5adc896dbc05c93a8a0fc9"), "date" : ISODate("2019-02-06T00:00:00.000Z"), "partner_id" : 36, "partner_user_id" : 163, "partner_user_name" : "Adriano", "view" : { "

我在MongoDB中有一个具有object类型的view属性的文档:

{
    "_id" : ObjectId("5c5adc896dbc05c93a8a0fc9"),
    "date" : ISODate("2019-02-06T00:00:00.000Z"),
    "partner_id" : 36,
    "partner_user_id" : 163,
    "partner_user_name" : "Adriano",
    "view" : {
        "webbundlecontrollersecurecontroller" : 1,
        "webbundlecontrollerclientcontroller" : 1,
        "webbundlecontrollerordercontroller" : 6
    }
}
我需要执行一个查询,返回如下内容:

{
    "_id" : ObjectId("5c5adc896dbc05c93a8a0fc9"),
    "date" : ISODate("2019-02-06T00:00:00.000Z"),
    "partner_id" : 36,
    "partner_user_id" : 163,
    "partner_user_name" : "Adriano",
    "controller" : "webbundlecontrollersecurecontroller"
    "total": 1
},
{
    "_id" : ObjectId("5c5adc896dbc05c93a8a0fc9"),
    "date" : ISODate("2019-02-06T00:00:00.000Z"),
    "partner_id" : 36,
    "partner_user_id" : 163,
    "partner_user_name" : "Adriano",
    "controller" : "webbundlecontrollerclientcontroller"
    "total": 1
},
{
    "_id" : ObjectId("5c5adc896dbc05c93a8a0fc9"),
    "date" : ISODate("2019-02-06T00:00:00.000Z"),
    "partner_id" : 36,
    "partner_user_id" : 163,
    "partner_user_name" : "Adriano",
    "controller" : "webbundlecontrollerordercontroller"
    "total": 6
}

基本上将第一个文档上的视图对象属性转换为3个新对象。我尝试将聚合与展开一起使用,但不确定如何最好地执行此操作

我能够使用objectToArray进行查询以转换对象,然后展开并构建最终查询

db.pmm_page_view.aggregate(
   [
      {
         $project: {
            date: 1,
            partner_id: 1,
            partner_user_id: 1,
            partner_user_name: 1, 
            view: { $objectToArray: "$view" }
         }
      },
      { $unwind: "$view" },
      {
         $project: {
            date: 1,
            partner_id: 1,
            partner_user_id: 1,
            partner_user_name: 1, 
            controller: "$view.k",
            total: "$view.v"
         }
      }
   ]
)

我能够使用objectToArray进行查询以转换对象,然后展开并构建最终查询

db.pmm_page_view.aggregate(
   [
      {
         $project: {
            date: 1,
            partner_id: 1,
            partner_user_id: 1,
            partner_user_name: 1, 
            view: { $objectToArray: "$view" }
         }
      },
      { $unwind: "$view" },
      {
         $project: {
            date: 1,
            partner_id: 1,
            partner_user_id: 1,
            partner_user_name: 1, 
            controller: "$view.k",
            total: "$view.v"
         }
      }
   ]
)