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
}
uj5u.com熱心網友回復:
如果我理解正確,您只需要這樣做:
{
"$project" : {
"_id": 0, // Not output the "real" _id
"midNightTimeStamp" : "$_id", // output _id value with name "midNightTimeStamp"
"energyConsumed" : 1.0
}
}
這里的例子
uj5u.com熱心網友回復:
可以通過在專案階段添加一個欄位來實作
"$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
}
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455116.html
下一篇:MongoDB宣告模型并洗掉資料
