You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
username in x509 authentication is optional since 3.4, it's not erroring on missing username in 3.2 or earlier either
scram-sha-256 since 4.0 should be implemented for the future
SSL
Server Discovery and Monitoring
Server Selection
Max Staleness - A client (driver or mongos) MUST estimate the staleness of each secondary, based on lastWriteDate values provided in server isMaster responses, and select only those secondaries whose staleness is less than or equal to maxStalenessSeconds.
Read and Write Concern - A driver must support configuring and sending read concern and write concerns to a server.
Decimal Data Type - MongoDB 3.4 introduces a new BSON type representing high precision decimal ("\x13"), known as Decimal128
MongoDB Handshake - The isMaster handshake MUST be performed on every socket to any and all servers upon establishing the connection to MongoDB, including reconnects of dropped connections and newly discovered members of a cluster. It MUST be the first command sent over the respective socket. If the command fails the client MUST disconnect.
Collation - As of MongoDB server version 3.4 (maxWireVersion 5), a collation option is supported by the query system for matching and sorting on language strings in a locale-aware fashion
OP_MSG - OP_MSG is a bi-directional wire protocol opcode introduced in MongoDB 3.6 with the goal of replacing most existing opcodes, merging their use into one extendable opcode. OP_MSG is only available in MongoDB 3.6 (maxWireVersion >= 6) and later. MongoDB drivers MUST continue to perform the MongoDB Handshake using OP_QUERY to determine if the node supports OP_MSG.
Transactions - The API for transactions must be specified to ensure that all drivers and the mongo shell are consistent with each other, and to provide a natural interface for application developers and DBAs who use multi-statement transactions.
Connection String
CRUD (programmer API spec) missing:
countDocuments (count is deprecated)
estimatedDocumentCount
discting missing options
find missing options (there are more options now, should be put into a struct)
bulkWrite
insertOne (like insert, but id must be generated), insertMany (ids must be generated, must not use OP_INSERT) - insert wrappers
findOneAndDelete, findOneAndReplace, findOneAndUpdate (wrappers of findAndModify)
Index Management (only old ensureIndex, no geo index for example)
Find, getMore and killCursors commands (still using opcodes)
Logical Sessions (for replica sets and shared clusters)
Retryable Writes
Causally Consistent Reads - A property that guarantees that an application can read its own writes and that a later read will never observe a version of the data that is older than an earlier read.
Enumerate Databases (optional)
OP_QUERY, OP_GET_MORE, OP_KILL_CURSOR, OP_REPLY
OP_INSERT, OP_UPDATE, OP_REMOVE, getLastError
we should think about supporting these draft specs:
Initial DNS Seedlist Discovery
Enumerate Collections
additionally we currently check if server connections satisfy a specific wire version to determine if we can run specific new commands on them, however with connection pooling across multiple servers this could break, as we just pick a random server, test its version and then run a command which may be run on another server. So:
fix satisfiesVersion here
imo before 1.0.0 MongoDB drivers should either be production ready or separated into a separate updated module. Note that this table may not be entirely accurate as I have only looked at a few parts in detail and noticed lots of missing parts.
The text was updated successfully, but these errors were encountered:
as per current "next gen driver" spec the current things are or are not (properly) implemented:
"\x13"
), known as Decimal128isMaster
handshake MUST be performed on every socket to any and all servers upon establishing the connection to MongoDB, including reconnects of dropped connections and newly discovered members of a cluster. It MUST be the first command sent over the respective socket. If the command fails the client MUST disconnect.OP_MSG
is a bi-directional wire protocol opcode introduced in MongoDB 3.6 with the goal of replacing most existing opcodes, merging their use into one extendable opcode. OP_MSG is only available in MongoDB 3.6 (maxWireVersion >= 6) and later. MongoDB drivers MUST continue to perform the MongoDB Handshake using OP_QUERY to determine if the node supports OP_MSG.we should think about supporting these draft specs:
additionally we currently check if server connections satisfy a specific wire version to determine if we can run specific new commands on them, however with connection pooling across multiple servers this could break, as we just pick a random server, test its version and then run a command which may be run on another server. So:
imo before 1.0.0 MongoDB drivers should either be production ready or separated into a separate updated module. Note that this table may not be entirely accurate as I have only looked at a few parts in detail and noticed lots of missing parts.
The text was updated successfully, but these errors were encountered: