You are currently browsing the tag archive for the ‘Mongo’ tag.

With Scopify chainable scopes and named scopes can be added to any model, for example MongoMapper:

MongoMapper::Document::ClassMethods.send(:include, Scopify::ClassMethods)
MongoMapper::Plugins::Associations::Proxy.send(:include, Scopify::ClassMethods)

It adds basic scoping and with some love from the Mongo community, it will soon be able to also merge multiple conditions / order`s.

A small hack to get minimum/maximum functionality on MongoMapper, its not 100% secure(can be wrong when inserting twice at the same time etc), but good enought for our usecase ;)

Usage

  User.maximum(:friend_count)
  User.minimum(:friend_count)

Code

module MongoMapper::Document::ClassMethods
  def maximum(column)
    first(:order => "#{column} desc").try(column)
  end

  def minimum(column)
    first(:order => "#{column} asc").try(column)
  end
end
Follow

Get every new post delivered to your Inbox.

Join 63 other followers