MongoDB将值推送到另一个对象或合并对象和键值

时间:2019-03-06 09:49:26

标签: database mongodb sorting group-by projection

假设您的收藏夹中包含以下文档:

{
    "_id": ObjectId("5c7e3982a50f3b32d2668112"),
    "cat_id": 1,
    "cat_code": "YMN",
    "overall": {
        "temp_price": NumberInt(500),
    },
    "date_wise": [{
            "last_inserted_id": "11",
            "created_at": "2018-07-26",
            "overall": {
                "temp_fee": NumberInt(20),
                // .....
            },
        }, {
            "last_inserted_id": NumberInt(50),
            "created_at": "2018-08-01",
            "overall": {
                "temp_fee": NumberInt(100),
                // .....
            },
            "data": []
        }, {
            "last_inserted_id": "28",
            "created_at": "2018-08-02",
            "overall": {
                "temp_fee": NumberInt(22),
                // .....    
            },
        }
        // .....
    ]
} 

我想要这样的输出:

{
    "_id": {
        "created_at": "2018-07-26",
        "temp_fee": NumberInt(20),
    },
    "_id": {
        "created_at": "2018-08-01",
        "temp_fee": NumberInt(100),
    },
    "_id": {
        "created_at": "2018-08-02",
        "temp_fee": NumberInt(22),
    }
}

在MongoDB中,我不是专业人士,但仍处于学习阶段。因此,我的努力如下。

db.collection.aggregate([
    {$match : {'cat_code': 'YMN'}},
    { $project: {overall1: "$date_wise.overall"}},
    { $group: { _id: '$overall1'}},
    {'$unwind':'$_id'},
    {'$skip':0},
    {'$limit':10},
    {'$sort': {'_id.created_at' : 1}}
]);

我正在尝试在overall键内合并created_at的单个值,即overalldate_wise的数据。应用于排序,跳过和限制。

0 个答案:

没有答案