首页 > 解决方案 > 如何将值推送到另一个对象或合并对象?

问题描述

假设您在我的收藏中有以下文档:

{
    "_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}}
]);

我正在尝试合并overallie的单个值created_atoverall内部date_wise键的数据。申请排序,跳过和限制它。

标签: databasemongodbsortinggroup-byprojection

解决方案


推荐阅读