Project

minimongo

0.0
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Helpers that sits right on top of mongodb with a nicer syntax. Only 6 lines of code.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

>= 2.2
 Project Readme

Minimongo

The world's tiniest MongoDB Ruby library, only 6 lines of code. Nothing is faster than no code.

If you need models, have a look at Modelize, it can be run on top of Minimongo.

We also have Mongocore if you're looking for a full ORM.

Installation

gem install minimongo

or add to Gemfile.

Usage

# All commands supported
# https://docs.mongodb.com/ruby-driver/master/quick-start

# Connect
Minimongo.db = Mongo::Client.new([ '127.0.0.1:27017' ], :database => "minimongo_#{ENV['RACK_ENV']}")

# Include methods in a class or module
include Minimongo::Query

# Include as helper in a Sinatra app
helpers Minimongo::Query

# Use with global variable
$db = include Minimongo::Query
$db.find(:messages).all

# Find needs first, count or to_a after
d = find(:domains).first
d = find(:domains).sort(:duration => -1).to_a
m = find(:messages, :_id => d._id).limit(1).first
c = find(:messages).count

# All
m = all(:messages)
m = all(:messages, :duration => {:$gt => 6})

# First
m = first(:models)
m = first(:models, :goal => 7)

# Last
m = last(:models)
m = last(:models, :duration => {:$ne => 6})

# Count
c = count(:messages)
c = count(:messages, :goal => 'hello')

# Insert
insert(:domains, :name => p[:name], :email => p[:email], :reply => p[:reply])

# Update
update(:domains, {:_id => p[:id]}, :name => p[:name], :email => p[:email])

# Delete
delete(:domains, :_id => p[:id])

# String as ID
find(:domains, '586333360aec08e87bd62180')
first(:domains, '586333360aec08e87bd62180')

# String to Object ID
oid('586333360aec08e87bd62180')

# New Object ID
oid
oid(:new)

Created and maintained by Fugroup Ltd. We are the creators of CrowdfundHQ.

@authors: Vidar