【发布时间】:2020-08-13 06:32:03
【问题描述】:
我正在使用 pymongo 对 MongoDB 进行一些分析。
在 MongoDB 中,有 480000 个 json 对象代表 2020 年 3 月至 2020 年 4 月之间关于 Covid-19 病毒的推文。
具体来说,这些对象包含两个字段:
1)"created_at",表示推文的创建时间戳(例如 created_at : 2020-03-20T10:57:57.000+00:00 ),日期类型;
2)“retweet_count”,表示推文被转发的次数(例如“retweet_count:30”);
我会创建一个聚合管道,每天接收前 5000 个 retweet_count 值最高的 json 对象。
问题是我不明白是否必须使用组子句、匹配子句或项目子句(我是新手)。
这里有一个我做过的尝试:
import pymongo
from datetime import datetime, tzinfo, timezone
from pymongo import MongoClient
client['Covid19']['tweets'].aggregate([
{
'$match' : {
"created_at": { '$gte': datetime(2020, 3, 20), '$lt': datetime(2020, 3, 21) }
}
},
{
'$merge': {
'into': 'tweets_filtered'
}
}
])
print(client['Covid19']['tweets_filtered'].count_documents({}))
这个管道提供了从 3 月 20 日到 3 月 21 日发布的推文,但我会概括这个过程,并每天获取前 5000 条 retweet_count 值最高的推文。
【问题讨论】:
标签: python mongodb pymongo pipeline