# MongoDB Ruby Driver History ### 1.6.2 2012-04-05 * Implements socket timeouts via non-blocking IO instead of Timeout module which should greately increase performance in highly threaded applications * Added ability to authentication via secondary if primary node unavailable * Replica set refresh interval now enforces a lower bound of 60 seconds * Added documentation for dropping indexes, collections, databases * Test output cleanup (...)s unless failure occurs ### 1.6.1 2012-03-07 * Added thread affinity to Mongo::Pool * Added deploy tasks * Added Travis CI support (Cyril Mougel) * Logging warning message is only displayed for level :debug ### 1.6.0 2012-02-22 * Added Gemfile * ReplSetConnection seed format is now array of 'host:port' strings * Added read preference :secondary_only * Added ability to log duration -- enabled by default (Cyril Mougel) * Added read_only option for DB#add_user (Ariel Salomon) * Added :collect_on_error option for bulk-insert (Masahiro Nakagawa) * Added and updated URI options (now case insensitive) * Bug fix for ReplSet refresh attempting to close a closed socket * Default op_timeout for ReplSetConnection is now disabled (was 30 seconds) * Support db output option for map reduce (John Ewart) * Support for keeping limited versions of files using GridFS (VvanGemert) ### 1.5.2 2011-12-13 * Lots of fixes for replica set connection edge cases. * Set default op_timeout and connect_timeout to 30 seconds. * Support GeoHaystack indexing. ### 1.5.1 2011-11-29 Release due to corrupted gemspec. This was a bug having to do with rubygems. Apparently, gems must still be built with Ruby 1.8. ### 1.5.0 2011-11-28 This releases fixes bugs introduced in 1.4.0 and 1.4.1 that were introduced as a result of adding replica set refresh modes. * Removed :async refresh mode. * Disabled auto refresh mode by default. If you want the driver to automatically check the state of the replica set, you must use :sync mode. Note that replica set refresh is designed only to account for benign changes to the replica set (adding and removing nodes that don't affect current connections). * Fixed bug with commands being sent to secondary nodes. The next release will allow you to specify where commands can be sent. * Support :j safe mode option. * Fix :max_scan and :show_disk_loc Cursor options. You can see the remaining issues at https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10005&version=10992 ### 1.5.0.rc0 2011-11-18 Fix bugs associated with replica set refresh. ### 1.4.1 2011-10-17 If you're using 1.4.0, this is a necessary upgrade. * Simplified replica set refresh. * Fix bugs associated with replica set refresh. * Make cursor smart enough to continue functioning even if a refresh is triggered. ### 1.4.0 2011-9-19 * Attempt to automatically refresh internal replica set state using ReplSetConnection#refresh. * Two automated refresh modes: :async and :sync. Automated refresh can also be disabled. * Choose secondary for reads based on ping time. * Read preference API: specify whether queries should go to primary or secondary on a per-query basis. * Pass :require_primary => false to ReplSetConnection to connect without requiring a primary node. * Enable exhaust-mode queries with OP_QUERY_EXHAUST. * Collection#count takes a query selector. * Support continue_on_error flag for bulk inserts (use :continue_on_error => true) * Add Cursor#add_option. Deprecate Cursor#query_opts and replace with Cursor#options. * Initial SSL support (connect with :ssl => true) * Update to latest Java driver for JRuby. * Check max BSON size on a per-connection basis. * Fixed two platform-specific BSON serialization issues. * Lots of bug fixes and code cleanup. ### 1.3.1 2011-5-10 * Fix GridIO#gets infinite loop error (Ryan McGeary) * Fix BSON::OrderedHash#reject! leaving keys with null values (rpt. by Ben Poweski) * Minor semantic fix for OrderedHash#reject! * Fix Mongo::DB to allow symbols in method traversing collection names (rpt. by Chris Griego) * Support new server regex option "s" (dotall). This is folded in with \m in Ruby. * Fix so that Cursor#close hits the right node when :read_secondary is enabled. * Support maxScan, showDiskLoc, and returnKey cursor options. * Make DB#validate_collection compatible with server v1.9.1. * Fix so that GridIO#gets returns local md5 with md5 matches server md5 (Steve Tantra). * Fix bug in BSON::OrderedHash that prevents YAML.load (Ian Warshak). * Fix example from /examples. * Ensure that we do not modify hash arguments by calling Hash#dup when appropriate. * Ensure that JRuby deserializer preserves binary subtypes properly. * Fix for streaming an empty file into GridFS (Daniël van de Burgt). * Minor doc fixes. ### 1.3.0 2011-4-04 * Add option to set timeouts on socket read calls using the Mongo::Connection :op_timeout option. * Add StringIO methods to GridIO objects * Support for BSON timestamp type with BSON::Timestamp * Change the BSON binary subtype from 2 to 0 * Remove private method Connection#reset_conection and deprecate public method ReplSetConnection#reset_connection * ByteBuffer#== and OrderedHash#dup (Hongli Lai) * Better check for UTF8 validity in Ruby 1.9 * Added previously removed Connection#host and Connection#port * Added transformers to allow Mongo::Cursor to allow instantiated objects (John Nunemaker) * Automated reconnection on fork * Added Cursor#next alias for Cursor#next_document * Audit tests after enabling warnings (Wojciech Piekutowski) * Various bug fixes thanks to Datanoise, Hongli Lai, and Mauro Pompilio ### 1.2.4 2011-2-23 * Fix the exception message shown when there's an IOError (Mauro Pompilio) * Another update to map-reduce docs for v1.8. Note that if you use the new output option `{:out => {:inline => true}}`, then you must also specify `:raw => true`. ### 1.2.3 2011-2-22 * Update docs for map-reduce command * Minor doc fix ### 1.2.2 2011-2-15 * Improved replica set failover for edge case. * Fix for REE on OSX (Hongli Lai) ### 1.2.1 2011-1-18 * Enable authentication with connection pooling. * Allow custom logging with Connection#instrument (CodeMonkeySteve) * Minor fixes and doc improvements. ### 1.2.0 2011-1-18 * Some minor improvements. See commit history. ### 1.2.rc0 2011-1-5 Lots of cleanup and minor bug fixes. * Issues resolved: http://jira.mongodb.org/browse/RUBY/fixforversion/10222 * Updated Java BSON to Java driver 2.4. * Platform gem for JRuby bson. ### 1.1.5 2010-12-15 * ReplSetConnection class. This must be used for replica set connections from now on. You can still use Connection.multi, but that method has been deprecated. * Automated replica set tests. rake test:rs * Check that request and response ids match. * Several bug fixes. See the commit history for details. ### 1.1.4 2010-11-30 * Important connection failure fix. * ObjectId#to_s optimization (David Cuadrado). ### 1.1.3 2010-11-29 * Distributed reads for replica set secondaries. See /docs/examples/replica_set.rb and http://api.mongodb.org/ruby/current/file.REPLICA_SETS.html for details. * Note: when connecting to a replica set, you must use Connection#multi. * Cursor#count takes optional skip and limit * Collection#ensure_index for caching index creation calls * Collection#update and Collection#remove now return error object when using safe mode * Important fix for int/long serialization on bug introduced in 1.0.9 * Numerous tweaks and bug fixes. ### 1.1.2 2010-11-4 * Two critical fixes to automated failover and replica sets. * Bug passing :timeout to Cursor. * Permit safe mode specification on Connection, Collection, and DB levels. * Specify replica set name on connect to verify connection to the right set. * Misc. reorganization of project and docs. ### 1.1.1 2010-10-14 * Several critical JRuby bug fixes * Fixes for JRuby in 1.9 mode * Check keys and move id only when necessary for JRuby encoder ## 1.1 2010-10-4 * Official JRuby support via Java extensons for BSON (beta) * Connection#lock! and Connection#unlock! for easy fsync lock * Note: BSON::Code is no longer a subclass of String. ### 1.0.9 2010-9-20 * Significant performance improvements (with a lot of help from Hongli Lai) ### 1.0.8 2010-8-27 * Cursor#rewind! and more consistent Cursor Enumberable behavior * Deprecated ObjectID for ObjectId * Numerous minor bug fixes. ### 1.0.7 2010-8-4 * A few minor test/doc fixes. * Better tests for replica sets and replication acknowledgment. * Deprecated DB#error and DB#last_status ### 1.0.6 2010-7-26 * Replica set support. * Collection#map_reduce bug fix. ### 1.0.5 2010-7-13 * Fix for bug introduced in 1.0.4. ### 1.0.4 2010-7-13 * Removed deprecated * Cursor admin option * DB#query * DB#create_index (use Collection#create_index) * DB#command only takes hash options now * j2bson executable (neomantra) * Fixed bson_ext compilation on Solaris (slyphon) * System JS helpers (neovintage) * Use one mutex per thread on pooled connections (cremes) * Check for CursorNotFound response flag * MapReduce can return raw command output using :raw * BSON::OrderedHash equality with other Ruby hashes (Ryan Angilly) * Fix for broken Socket.send with large payloads (Frédéric De Jaeger) * Lots of minor improvements. See commmits. ### 1.0.3 2010-6-15 * Optimiztion for BSON::OrderedHash * Some important fixes. ### 1.0.2 2010-6-5 This is a minor release for fixing an incompatibility with MongoDB v1.5.2 * Fix for boolean response on commands for core server v1.5.2 * BSON.read_bson_document and b2json executable (neomantra) * BSON::ObjectID() shortcut for BSON::ObjectID.from_string (tmm1) * Various bug fixes. ### 1.0.1 2010-5-7 * set Encoding.default_internal * DEPRECATE JavaScript string on Collection#find. You now must specify $where explicitly. * Added Grid#exist? and GridFileSystem#exist? * Support for replication acknowledgment * Support for $slice * Namespaced OrderedHash under BSON (sleverbor) ## 1.0 2010-4-29 Note: if upgrading from versions prior to 0.20, be sure to upgrade to 0.20 before upgrading to 1.0. * Inspected ObjectID is represented in MongoDB extended json format. * Support for tailable cursors. * Configurable query response batch size (thx. to Aman Gupta) * bson_ext installs on early release of Ruby 1.8.5 (dfitzgibbon) * Deprecated DB#create_index. Use Collection#create_index index. * Removed deprecated Grid#put syntax; no longer requires a filename. ### 0.20.1 2010-4-7 * Added bson gem dependency. ### 0.20 2010-4-7 If upgrading from a previous version of the Ruby driver, please read these notes carefully, along with the 0.20_UPGRADE doc. * Support for new commands: * Collection#find_and_modify * Collection#stats * DB#stats * Query :fields options allows for values of 0 to exclude fields (houdini, railsjedi). * GridFS * Option to delete old versions of GridFileSystem entries. * Filename is now optional for Grid#put. * Option to write arbitrary attributes to a file: @grid.put(@data, :favorite_phrase => "blimey!") * Indexes created on the chunks collection are now unique. If you have an existing chunks collection, you may want to remove * Removed the following deprecated items: * GridStore class * RegexpOfHolding class * Paired connections must now be initialized with Connection.paired * BSON-related code extracted into two separate gems: bson and bson_ext (thx to Chuck Remes). * mongo_ext no longer exists. * BSON::Binary constructor can now take a string, which will be packed into an array. * Exception class adjustments: * Mongo::InvalidObjectID moved to BSON::InvalidObjectID * Mongo::InvalidDocument moved to BSON::InvalidDocument * Mongo::InvalidStringEncoding moved to BSON::InvalidStringEncoding * Mongo::InvalidName replaced by Mongo::InvalidNSName and BSON::InvalidKeyName * BSON types are now namespaced under the BSON module. These types include: * Binary * ObjectID * Code * DBRef * MinKey and MaxKey * Extensions compile on Rubinius (Chuck Remes). ## Prior to 0.20 See git revisions.