Feature Checklist for Mongo Drivers

Functionality Checklist

This section lists tasks the driver author might handle.

Essential

  • BSON serialization/deserialization
  • Basic operations: query, insert, update, remove, ensureIndex, findOne, limit, sort
  • Fetch more data from a cursor when necessary (dbGetMore)
  • Sending of KillCursors operation when use of a cursor has completed (ideally for efficiently these are sent in batches)
  • Convert all strings to utf8
  • Authentication

Recommended

  • automatic _id generation
  • Database $cmd support and helpers
  • Detect { $err: ... } response from a db query and handle appropriately --see Error Handling in Mongo Drivers
  • [Automatically connect to proper server, and failover], when connecting to a Replica Set
  • ensureIndex commands should be cached to prevent excessive communication with the database. (Or, the driver user should be informed that ensureIndex is not a lightweight operation for the particular driver.)
  • Support detecting max BSON size on connection (e.g., using buildinfo or isMaster commands) and allowing users to insert docs up to that size.

More Recommended

  • lasterror helper functions
  • count() helper function
  • $where clause
  • eval()
  • File chunking (GridFS)
  • hint fields
  • explain helper

More Optional

  • addUser, logout helpers
  • Allow client user to specify Option_SlaveOk for a query
  • Tailable cursor support
  • In/out buffer pooling (if implementing in a garbage collected languages)

More Optional

  • [connection pooling]
  • Automatic reconnect on connection failure
  • DBRef Support:
    • Ability to generate easily
    • Automatic traversal

See Also

Follow @mongodb

MongoDB Pittsburgh - May 15
MongoNYC - May 23
MongoDB Paris - Jun 14
MongoDB UK - Jun 20
MongoDC - June 26


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

PLEASE POST QUESTIONS IN THE USER GROUPS FORUM. Post non-question comments and helpful hints here.

blog comments powered by Disqus