使用 Mongodb 聚合如何将数字更改为月份名称
Posted
技术标签:
【中文标题】使用 Mongodb 聚合如何将数字更改为月份名称【英文标题】:Using Mongo aggregation how to change numbers to month name 【发布时间】:2018-09-23 18:25:35 【问题描述】:我正在尝试这个 mongo db 聚合,我得到了输出,但我的要求是月份名称只显示名称。示例:月份名称:一月,月份名称:二月“请任何人建议我
db.COLLECTION.aggregate([
$match:
CREATE_DATE:
$lte:new Date(),
$gte: new Date(new Date().setDate(new
Date().getDate()-200)
)
,
$group:
_id:
month: $month: "$CREATE_DATE" ,
year: $year: "$CREATE_DATE"
,
avgofozone:$avg:"$OZONE"
,
$sort: "year": -1 ,
$project:
year: '$_id.year',
avgofozone: '$avgofozone',
month: '$_id.month',_id:0
])
output:
"_id" :
"month" : 4,
"year" : 2018
,
"year" : 2018,
"avgofozone" : 16.92,
"month" : 4
expected output:
"_id" :
"month" : April,
"year" : 2018
,
"year" : 2018,
"avgofozone" : 16.92,
"month" : april
【问题讨论】:
请显示要分析的文档数据 @Nikhil Savaliya "_id" : ObjectId("5a38d7d5c9790a0cec5f0832"), "ID" : "20170223011505924465000000", "DISTRICT" : "vskp", "STATION" : "APPPCB", "INDUSTRY" : “2”、“TAKEN_DT”:ISODate(“2017-02-23T00:30:00.000Z”)、“一氧化碳”:0.0、“臭氧”:12.69、“PM10”:69.0、“PM2DOT5”:54.0、“二氧化硫” “:11.2,“二氧化氮”:20.11,“FLAG1”:“NA”,“氨”:30.92,“苯”:0.58,“FLAG2”:“NA”, “FLAG3”:“NA”,“FLAG4”:“NA”,“MODULE_ID”:“100-1”,“SUBMODULE_ID”:“100-1”,“SOURCE_OFFICE_ID”:“1000” -1"、"SCREEN_ID":"100-1"、"CREATE_DATE":ISODate("2017-02-23T01:15:05.924Z")、"CREATED_BY":"1000-1"、"DB_IP_ADDRESS":"127.0 .0.1", "CHECK_CONDITION" : "20170223011505924465000000", "RECORD_STATUS" : NumberLong(1), "DATA_FROM" : "VUYI" 请用正确的格式更新问题 @Nikhil Savaliya iam 得到输出:“_id”:“月”:4,“年”:2018 ,“年”:2018,“avgofozone”:16.92,“月”: 4 但需要输出 :"month":4 我想替换 "month":april 就是这样 【参考方案1】:MongoDB 中的日期数据类型不支持满足您的要求,因此最好的解决方案是创建您自己的集合(例如:“MyMonth”),该集合存储 12 个文档以将月份编号映射到月份名称,如下所示:
db.MyMonth.insert(
_id: 1,
"name": "JANUARY"
);
db.MyMonth.insert(
_id: 2,
"name": "FEBRUARY"
);
//...
然后,在您的聚合查询中,使用 $lookup 管道加入“MyMonth”以从月份编号中检索月份名称,如下所示:
$lookup:
from: "MyMonth",
localField: "month",
foreignField: "_id",
as: "month_data"
//...
【讨论】:
如何在上面的查询中添加 $lookup 请给我建议 @thoai nguyen 如何在上面的查询中添加 $lookup 请给我建议 您可以像这样在最后一个管道之后添加两个管道:..., $lookup: from: "MyMonth", localField: "month", foreignField: "_id", as: " month_data" , $project: _id: 1, year: 1, avgofozone: 1, month: "$month_data.name" ...以上是关于使用 Mongodb 聚合如何将数字更改为月份名称的主要内容,如果未能解决你的问题,请参考以下文章