如何将 mongodb 中的文档和项目 _id 分组为不同的名称?

How to group documents in mongodb and project _id as different name?

db.getCollection("analytics").aggregate(
    [
        { 
            "$match" : { 
                "uID" : { 
                    "$in" : [
                        "202003008", 
                        "20200306"
                    ]
                }, 
                "midNightTimeStamp" : { 
                    "$gte" : ISODate("2022-03-26T18:30:00.000+0000")
                }
            }
        }, 
        { 
            "$group" : { 
                "_id" : "$midNightTimeStamp", 
                "energyConsumed" : { 
                    "$sum" : "$energyConsumed"
                }, 
            }
        }, 
        { 
            "$project" : { 
                "midNightTimeStamp" : 1.0, // I also want to project with a different name.
                "energyConsumed" : 1.0
            }
        }
    ], 
    { 
        "allowDiskUse" : false
    }
);

如上面的查询所示,我想将一个字段投影为 midNightTimeStamp,它与 _id(累加器对象)相同,这样当我收到文件时,我会得到它

{
    midNightTimeStamp: ISODate("2022-03-26T18:30:00.000+0000"),
    energyConsumed: 100
}

如果我没理解错你只需要这样做:

{
    "$project" : { 
        "_id": 0, // Not output the "real" _id
        "midNightTimeStamp" : "$_id", // output _id value with name "midNightTimeStamp"
        "energyConsumed" : 1.0
    }
}

例子here

在项目阶段添加一个字段即可实现

"$project" : { 
                "_id" : 0.0, 
                "midNightTimeStamp" : "$_id", // This will be added.
                "energyConsumed" : 1.0
            }

这将导致以下查询:

db.getCollection("analytics").aggregate(
        [
            { 
                "$match" : { 
                    "uID" : { 
                        "$in" : [
                            "202003008", 
                            "20200306"
                        ]
                    }, 
                    "midNightTimeStamp" : { 
                        "$gte" : ISODate("2022-03-26T18:30:00.000+0000")
                    }
                }
            }, 
            { 
                "$group" : { 
                    "_id" : "$midNightTimeStamp", 
                    "energyConsumed" : { 
                        "$sum" : "$energyConsumed"
                    }
                }
            }, 
            { 
                "$project" : { 
                    "_id" : 0.0, 
                    "midNightTimeStamp" : "$_id", 
                    "energyConsumed" : 1.0
                }
            }
        ], 
        { 
            "allowDiskUse" : false
        }
    );