diff --git a/lib/couchrest/core/database.rb b/lib/couchrest/core/database.rb index 060c124..90c4828 100644 --- a/lib/couchrest/core/database.rb +++ b/lib/couchrest/core/database.rb @@ -44,6 +44,11 @@ module CouchRest end end + # load a set of documents by passing an array of ids + def get_bulk(ids) + documents(:keys => ids, :include_docs => true) + end + # POST a temporary view function to CouchDB for querying. This is not # recommended, as you don't get any performance benefit from CouchDB's # materialized views. Can be quite slow on large databases. diff --git a/spec/couchrest/core/database_spec.rb b/spec/couchrest/core/database_spec.rb index f5565b0..985ebf9 100644 --- a/spec/couchrest/core/database_spec.rb +++ b/spec/couchrest/core/database_spec.rb @@ -599,6 +599,11 @@ describe CouchRest::Database do ds = @db.documents(:startkey => 'doc0', :endkey => 'doc3', :include_docs => true) ds['rows'][0]['doc']['another'].should == "doc" end + it "should have the bulk_load macro" do + rs = @db.bulk_load ["doc0", "doc7"] + rs['rows'].length.should == 2 + ds['rows'][0]['doc']['another'].should == "doc" + end end