MongoDB 带日期时间显示的 $group "None"
MongoDB $group with datetime displays "None"
我开始学习使用 MongoDB 以及 Jupyter notebook 和 python 模块 Pymongo。
在我的一个文档中,我将数据存储如下:
{
"_id" : ObjectId("60b78821d5a53a1f12336580"),
"num_arete" : "0",
"date" : ISODate("2020-01-01T07:01:00Z"),
"nb_vehicules" : "32"
}
我想使用聚合,使文档集合中所有 nb_vehicules 的 $sum 按日期分组.
这是我尝试过的方法:
passage_per_hour = collection_trafic.aggregate([{
'$group': {
'_id': '$date',
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])
但是当我 运行 它在 notenook 中时,它不会执行分组并显示 $date 为 None(见下文)。
有人知道为什么吗?
如果您想按日期汇总数据,则只需从时间戳中提取日期。因为它也会包含时间。
您可以使用以下聚合查询来实现。
passage_per_hour = collection_trafic.aggregate([{
'$group': {
'_id': { '$dateToString': { 'format': "%Y-%m-%d", 'date': '$date' } },
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])
编辑:
过滤掉日期的空值
passage_per_hour = collection_trafic.aggregate([
{
'$match':{
'date':{"$exists":true}
}
},
{
'$group': {
'_id': { '$dateToString': { 'format': "%Y-%m-%d", 'date': '$date' } },
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])
我开始学习使用 MongoDB 以及 Jupyter notebook 和 python 模块 Pymongo。
在我的一个文档中,我将数据存储如下:
{
"_id" : ObjectId("60b78821d5a53a1f12336580"),
"num_arete" : "0",
"date" : ISODate("2020-01-01T07:01:00Z"),
"nb_vehicules" : "32"
}
我想使用聚合,使文档集合中所有 nb_vehicules 的 $sum 按日期分组.
这是我尝试过的方法:
passage_per_hour = collection_trafic.aggregate([{
'$group': {
'_id': '$date',
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])
但是当我 运行 它在 notenook 中时,它不会执行分组并显示 $date 为 None(见下文)。
有人知道为什么吗?
如果您想按日期汇总数据,则只需从时间戳中提取日期。因为它也会包含时间。
您可以使用以下聚合查询来实现。
passage_per_hour = collection_trafic.aggregate([{
'$group': {
'_id': { '$dateToString': { 'format': "%Y-%m-%d", 'date': '$date' } },
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])
编辑:
过滤掉日期的空值
passage_per_hour = collection_trafic.aggregate([
{
'$match':{
'date':{"$exists":true}
}
},
{
'$group': {
'_id': { '$dateToString': { 'format': "%Y-%m-%d", 'date': '$date' } },
'amount': { '$sum': {'$toInt' :'$nb_vehicules'}}
}
}])