Merge branch 'master' of git://github.com/jimm/mongo-ruby-driver

This commit is contained in:
Adrian Madrid 2008-12-08 14:53:27 -07:00
commit 8bcabd977d
3 changed files with 11 additions and 7 deletions

3
README
View File

@ -54,9 +54,6 @@ type
* Implement Babble's algorithm for ObjectID. Implement Comparable. * Implement Babble's algorithm for ObjectID. Implement Comparable.
* Change find(selector={}, fields=nil, options={}) to find(selector={},
options={})
* ObjectID equality. * ObjectID equality.
* Capped collection support. * Capped collection support.

View File

@ -26,9 +26,16 @@ module XGen
@name = name @name = name
end end
# Options:
# * <tt>:fields</tt> - Array of collection field names; only those will be returned (plus _id if defined)
# * <tt>:offset</tt> - Start at this record when returning records
# * <tt>:limit</tt> - Maximum number of records to return
# * <tt>:sort</tt> - Hash of field names as keys and 1/-1 as values; 1 == ascending, -1 == descending
# <tt>
def find(selector={}, options={}) def find(selector={}, options={})
options = { :fields => nil, :offset => 0, :limit => 0, :sort => nil}.update(options) fields = options.delete(:fields)
@db.query(@name, Query.new(selector, options[:fields], options[:offset], options[:limit], options[:sort])) fields = nil if fields && fields.empty?
@db.query(@name, Query.new(selector, fields, options[:offset] || 0, options[:limit] || 0, options[:sort]))
end end
def insert(*objects) def insert(*objects)

View File

@ -181,7 +181,7 @@ class DBAPITest < Test::Unit::TestCase
def test_array def test_array
@coll << {'b' => [1, 2, 3]} @coll << {'b' => [1, 2, 3]}
rows = @coll.find({}, {'b' => 1}).collect rows = @coll.find({}, {:fields => ['b']}).collect
assert_equal 1, rows.length assert_equal 1, rows.length
assert_equal [1, 2, 3], rows[0]['b'] assert_equal [1, 2, 3], rows[0]['b']
end end
@ -189,7 +189,7 @@ class DBAPITest < Test::Unit::TestCase
def test_regex def test_regex
regex = /foobar/i regex = /foobar/i
@coll << {'b' => regex} @coll << {'b' => regex}
rows = @coll.find({}, {'b' => 1}).collect rows = @coll.find({}, {:fields => ['b']}).collect
assert_equal 1, rows.length assert_equal 1, rows.length
assert_equal regex, rows[0]['b'] assert_equal regex, rows[0]['b']
end end