Skip to content
An interface for performing queries in MongoDB using query string parameters.
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Overview build status

About Mongoid::QueryStringInterace

Gives some methods that can parse query string parameters into a set of criterias that Mongoid can use to perform actual queries in MongoDB databases for a given model.



This is a gem, so you can install it by:

sudo gem install mongoid_query_string_interface

Or, if you are using rails, put this in your Gemfile:

gem 'mongoid_query_string_interface'


To use it, just extend Mongoid::QueryStringInterface in your document model:

class Document
  include Mongoid::Document
  extend Mongoid::QueryInterfaceString

  # ... add fields here

Then, in your controllers put:

def index
  @documents = Document.filter_by(params)
  # ... do something like render a HTML template or a XML/JSON view of documents

That's it! Now you can do something like this:|rails|mongodb&tags.nin=sql|java&

This would get all documents which have the tags 'ruby', 'rails' and 'mongo', and that don't have both 'sql' and 'java' tags, and that were updated after 2010-01-01, ordered by descending created_at. It will return 10 elements per page, and the 3rd page of results.

You could even query for embedded documents, and use any of the Mongodb conditional operators:

Which would get all documents that have been commented by 'Shrek'. Basically, any valid path that you can use in a Mongoid::Criteria can be used here, and you can also append any of the Mongodb conditional operators.

You can sort results by passing a order_by parameter this:


Which is the same as:

To order by more than one field:|updated_at.desc

Check the specs for more use cases.


  • Vicente Mundim: vicente.mundim at gmail dot com
  • Wandenberg Peixoto: wandenberg at gmail dot com
Something went wrong with that request. Please try again.