mongoDBが新しくなっています。私が扱っているコレクションは、gmail APIを使用して自分のgmailにアクセスするpythonファイルによって構築されました。受信した電子メールの数が最も多い曜日の時刻を検索するクエリを作成します。ここに私の試みました:電子メールの日付は「名前」は、日付とあるオブジェクトのpayload.headers部分であるmongoDB aggregate()電子メールオブジェクトのコレクションの電子メールの時刻を取得する
{
"id": string,
"threadId": string,
"labelIds": [
string
],
"snippet": string,
"historyId": unsigned long,
"internalDate": long,
"payload": {
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
"name": string,
"value": string
}
],
"body": users.messages.attachments Resource,
"parts": [
(MessagePart)
]
},
"sizeEstimate": integer,
"raw": bytes
}
:
db.gmail_data2.aggregate(
[{$unwind: '$payload.headers' },
{$match:{'payload.headers.name':'Date'}},
{$project:{email_hour:{$hour:"payload.headers.value"}}},
{$group:{_id:"$email_hour",total:{$max:{$sum:1}}}}])
ここでは、電子メールのオブジェクトがどのように見えるかです"値"はISODate形式の日付です。クエリは$ maxコマンドなしで動作し、すべての電子メールのうち時間あたりの電子メールの数を示します。一度私が$ maxコマンドを置くと、それは毎時のために:{ "_id" : hour, "total" : 1 }
を置きます。
の$ email_month ???それはタイプミスですか? – Veeram