私はMongoでいくつかのテストをしようとしていますが、私は単純なMySQLクエリのいくつかがMongoに相当すると考えています。MongoDB - MySQL SUM(CASE WHEN)相当ですか?
は、私はあなたがモンゴ文書のキーに詳細を打破しようとする必要がありますように私はここにRuduに同意するだろう、私は助けが必要もう少し複雑です。このクエリ...
SELECT DISTINCT dims_user,
COUNT(DISTINCT asset_name) AS asset_count,
COUNT(DISTINCT system_name) AS station_count,
SUM(CASE WHEN details ='viewed' then 1 Else 0 end) AS viewed_count,
SUM(CASE WHEN details Like 'Viewed Web%' then 1 Else 0 end) AS Web_count,
SUM(CASE WHEN details = 'ThumbView' then 1 Else 0 end) AS ThumbView_count,
SUM(CASE WHEN details Like 'Exported%' then 1 Else 0 end) AS Exported_count,
SUM(CASE WHEN details Like '%Print%' then 1 Else 0 end) AS Printed_count
FROM asset_log GROUP BY dims_user;
Uh ...これは良い関係の習慣ではありません...「詳細」列のデータを正規化する必要があります.NoSQLのdbデザインの列も同じです:action =(view | web | thumb | export | print)したら、アクションごとにグループに切り替えるだけです。 – Rudu
ログファイルの束、私はちょうどそこに3200万レコードを持っています – rreeves
[ETL](http://en.wikipedia.org/wiki/Extract,_transform,_load)それは一度静的な - または繰返し負荷のための負荷/変換処理)を正規化する。それはあなたがしようとしていることを大幅に簡素化します。 – Rudu