提问人:alanandrade01 提问时间:6/24/2023 更新时间:6/25/2023 访问量:40
从 MongoDB Compass 聚合结果中排除“0”值
Excluding "0" values from MongoDB Compass aggregation result
问:
我正在MongoDB Compass中执行聚合,我想从结果中排除“0”的值。目前,我的聚合返回以下日期值:“1948-12-08 00:00:00.000”。如何修改聚合以从结果中排除这些“0”值?
这是我当前聚合的图片:
我尝试了各种方法,例如将 $match 与 $ne 一起使用,但我没有成功排除“0”值。任何指导或建议将不胜感激。
我期望得到:“1948-12-08”年、月和日。
答:
0赞
user20042973
6/24/2023
#1
一般来说,我会说将日期(仅)存储为字符串类型是一个错误。除其他外,它可能会使查询和显示数据更加困难。
也就是说,您可以使用$split
运算符(与$arrayElemAt
运算符结合使用)来获得所需的结果。它可能看起来像这样:
db.collection.aggregate([
{
"$addFields": {
"date": {
"$arrayElemAt": [
{
"$split": [
"$date",
" "
]
},
0
]
}
}
}
])
您应该预置一个阶段来执行您需要执行的任何筛选操作。$match
评论
0赞
alanandrade01
6/25/2023
非常好!你是对的,现在它起作用了。谢谢。
0赞
user20042973
6/25/2023
很高兴听到它!如果它解决了原始问题,请接受答案,以向其他人表明该问题已得到解决
评论
$dateTrunc