Sha256: 42a2bdce6a3192d51feb17124af057109d0cd4c0b846c58bdbb213ea1949a85b
Contents?: true
Size: 945 Bytes
Versions: 62
Compression:
Stored size: 945 Bytes
Contents
module Workarea class User class AdminVisit include ApplicationDocument field :name, type: String field :path, type: String field :user_id, type: String index({ user_id: 1 }) index({ created_at: 1 }, { expire_after_seconds: 4.weeks.seconds.to_i }) def self.most_visited(user_id, limit = Workarea.config.admin_max_most_visited) results = collection.aggregate([ { '$match' => { 'user_id' => user_id.to_s } }, { '$group' => { '_id' => '$path', 'name' => { '$first' => '$name' }, 'count' => { '$sum' => 1 } } }, { '$sort' => { 'count' => -1 } }, { '$limit' => limit } ]) results.map do |result| { name: result['name'], path: result['_id'] } end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems