Skip to main content
Version: Next

Compatibility

Limitations

We don't plan to address those known differences in behavior:

  1. FerretDB uses the same error names and codes as MongoDB, but the exact error messages may sometimes be different.
  2. FerretDB collection names must be valid UTF-8; MongoDB allows invalid UTF-8 sequences.

We consider all other differences in behavior to be problems and want to address them. Some of them are mentioned below. You can upvote linked issues to affect our roadmap. If you encounter any other problem, please join our community to report it.

Wire protocol

All drivers and applications compatible with MongoDB 5.0+ should be compatible with FerretDB.

Administrative commands

CommandStatus
cloneCollectionAsCapped❌ Not implemented yet
collMod✅️ Supported
compact✅️ Supported
convertToCapped❌ Not implemented yet
create✅️ Supported
createIndexes✅️ Supported
currentOp✅️ Supported
drop✅️ Supported
dropConnections❌ Not implemented yet
dropDatabase✅️ Supported
dropIndexes✅️ Supported
getParameter✅️ Supported
killCursors✅️ Supported
killOp❌ Not implemented yet
listCollections✅️ Supported
listDatabases✅️ Supported
listIndexes✅️ Supported
logRotate❌ Not implemented yet
reIndex✅️ Supported
renameCollection✅️ Supported
setParameter❌ Not implemented yet
shutdown❌ Not implemented yet

Aggregation commands

CommandStatus
aggregate✅️ Supported
count✅️ Supported
distinct✅️ Supported

Authentication commands

CommandStatus
authenticate❌ Not implemented yet
logout✅️ Supported
saslContinue✅️ Supported
saslStart✅️ Supported

Diagnostic commands

CommandStatus
buildInfo✅️ Supported
collStats✅️ Supported
connectionStatus✅️ Supported
connPoolStats❌ Not implemented yet
dataSize✅️ Supported
dbStats✅️ Supported
explain✅️ Supported
ferretDebugError✅️ Supported
getCmdLineOpts✅️ Supported
getLog✅️ Supported
hostInfo✅️ Supported
listCommands✅️ Supported
logApplicationMessage❌ Not implemented yet
ping✅️ Supported
profile❌ Not implemented yet
serverStatus✅️ Supported
validate✅️ Supported
whatsmyuri✅️ Supported

Query commands

CommandStatus
bulkWrite❌ Not implemented yet
delete✅️ Supported
find✅️ Supported
findAndModify✅️ Supported
getMore✅️ Supported
insert✅️ Supported
update✅️ Supported

Role management commands

CommandStatus
createRole❌ Not implemented yet
dropAllRolesFromDatabase❌ Not implemented yet
dropRole❌ Not implemented yet
grantPrivilegesToRole❌ Not implemented yet
grantRolesToRole❌ Not implemented yet
revokePrivilegesFromRole❌ Not implemented yet
revokeRolesFromRole❌ Not implemented yet
rolesInfo❌ Not implemented yet
updateRole❌ Not implemented yet

Session commands

CommandStatus
abortTransaction❌ Not implemented yet
commitTransaction❌ Not implemented yet
endSessions✅️ Supported
killAllSessions✅️ Supported
killAllSessionsByPattern⚠️ Not fully implemented yet
killSessions✅️ Supported
refreshSessions✅️ Supported
startSession✅️ Supported

User management commands

CommandStatus
createUser✅️ Supported
dropAllUsersFromDatabase✅️ Supported
dropUser✅️ Supported
grantRolesToUser❌ Not implemented yet
revokeRolesFromUser❌ Not implemented yet
updateUser✅️ Supported
usersInfo✅️ Supported

Data API

All drivers and applications compatible with Atlas Data API should be compatible with FerretDB.

PathStatus
/action/aggregate✅️ Supported
/action/deleteMany✅️ Supported
/action/deleteOne✅️ Supported
/action/find✅️ Supported
/action/findOne✅️ Supported
/action/insertMany✅️ Supported
/action/insertOne✅️ Supported
/action/updateMany✅️ Supported
/action/updateOne✅️ Supported