mongoid-sequence icon indicating copy to clipboard operation
mongoid-sequence copied to clipboard

Specify fields to behave like a sequence number (exactly like the "id" column in conventional SQL flavors) while using Mongoid.

Mongoid Sequence

Mongoid Sequence allows you to specify fields to behave like a sequence number (exactly like the "id" column in conventional SQL flavors).

Credits

This gem was inspired by a couple of gists by masatomo and ShogunPanda.

Usage

Include Mongoid::Sequence in your class and call sequence(:field).

Like this:

class Sequenced
	include Mongoid::Document
	include Mongoid::Sequence
	
	field :my_sequence, :type => Integer
	sequence :my_sequence
end

s1 = Sequenced.create
s1.sequence #=> 1

s2 = Sequenced.create
s2.sequence #=> 2 # and so on

It's also possible to make the id field behave like this:

class Sequenced
	include Mongoid::Document
	include Mongoid::Sequence
	
	sequence :_id
end

s1 = Sequenced.create
s1.id #=> 1

s2 = Sequenced.create
s2.id #=> 2 # and so on

Consistency

Mongoid::Sequence uses the atomic findAndModify command, so you shouldn't have to worry about the sequence's consistency.

Installation

Just add it to your projects' Gemfile:

gem "mongoid-sequence"

Copyright © 2010 Gonçalo Silva, released under the MIT license