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