現在、次のようなmysqlテーブルがあります。
+---------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| mediaID | int(11) | NO | | NULL | |
| date | datetime | NO | | NULL | |
+---------+----------+------+-----+---------+----------------+
このテーブルには、特定のメディアに対して作成されたすべてのヒットが保存されます。このヒットが発生したときのメディア ID と日付を保存します。そのため、トレンド メディア (特定の期間に最も多く閲覧されたメディア) を表示したい場合は、次の mysql クエリを使用します。
SELECT mediaID, COUNT(*) as cnt FROM hits WHERE DATE(date) = CURDATE() - INTERVAL 1 DAY GROUP BY mediaID ORDER BY cnt DESC LIMIT 0,10
今..これをMongoDBに移動する予定です。現在、次のドキュメントでコレクション「ヒット」があります。
{
_id: ObjectId("50827eaaae1c3ced6c00000f"),
mediaID: "2",
ts: ISODate("2012-10-20T13:36:26+03:00")
}
{
_id: ObjectId("50827ebeae1c3ced6c000010"),
mediaID: "1",
ts: ISODate("2012-10-20T13:36:46+03:00")
}
{
_id: ObjectId("50827ec3ae1c3c6167000008"),
mediaID: "2",
ts: ISODate("2012-10-20T13:36:51+03:00")
}
それで、私の質問は、以前のクエリを変換して MongoDB で動作できるようにする方法です。PS私はphp mongodbドライバーでphpを使用しています。
こんにちは、ミレン