Feature Checklist for MongoDB Drivers
Note
This legacy documentation does not necessarily reflect the current
practices in MongoDB driver implementation, but may be useful for
historical purposes. See the MongoDB Meta Driver for the current
documentation of MongoDB driver implementation.
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 the KillCursors operation when
use of a cursor has completed. For efficiency, send these in batches.
- Convert all strings to UTF-8.
- Authentication
Recommended
- Automatic _id generation
- Database $cmd support and helpers
- Detect { $err: ... } response from a database query and handle
appropriately. See Error Handling in MongoDB 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 Optional
- addUser()
- logout()
- Allow client user to specify setSlaveOk() for a query
- Tailable cursor support
- In/out buffer pooling, if implementing in garbage collected language
More Optional
- Connection pooling
- Automatic reconnect on connection failure
- DBRef Support:
- Ability to generate easily
- Automatic traversal