TinyMongo¶ ↑
Simple MongoDB wrapper
Notice¶ ↑
This gem is not yet ready for production use.
Install¶ ↑
gem install tinymongo
Rails Setup (Rails 3)¶ ↑
To create TinyMongo config file (config/tinymongo.yml) and initializer file (config/initializers/tinymongo.rb), do the following:
rails generate tinymongo
Connecting To MongoDB directly (for non-Rails projects)¶ ↑
TinyMongo.configure({:host => 'localhost', :database => 'db_name'}) TinyMongo.connect
Example¶ ↑
class Person < TinyMongo::Model mongo_collection :people # optional if using Rails mongo_key :name mongo_key :age, :default => 0 mongo_key :children, :default => [] def make_child child = Person.create(:name => 'Baby') push({:children => child}) # push child into children array end def grow_up inc({:age => 1}) # increments age by 1 end def set_stuff(n,a,c) # don't forget to put self self.name = n self.age = a self.children = c save end end Person.drop # empty person collection p = Person.create(:name => 'John', :age => 20) p.make_child p.grow_up Person.find.each do |person| puts person.name end Person.find_one(:name => 'John').age Person.create(:name => 'Jim') Person.create(:name => 'Pam') Person.find.to_a.map { |person| person.name } Person.find.has_next? Person.find.sort({:name => 1}).skip(2).limit(1).next!.name Person.find({:name => 'John'}, {:age => 1}) # select only age field Person.find.count # count ignores skip and limit Person.find.skip(1).size # size is affected by skip and limit Person.distinct(:name) Person.ensure_index({:name => 1}) Person.drop_index({:name => 1})
Copyright¶ ↑
Copyright © 2010 Peter Jihoon Kim. See LICENSE for details.