Published: April 03 2023

Mongoose + MongoDB - Fix for MongoParseError: options usecreateindex, usefindandmodify are not supported

I updated a Node.js project this morning to use the latest version of Mongoose (7.0.3) to connect to MongoDB and received the following error on startup:

C:\Projects\node-mongo-registration-login-api\node_modules\mongodb\lib\connection_string.js:286
        throw new error_1.MongoParseError(`${optionWord} ${Array.from(unsupportedOptions).join(', ')} ${isOrAre} not supported`);
              ^

MongoParseError: options usecreateindex, usefindandmodify are not supported
    at parseOptions (C:\Projects\node-mongo-registration-login-api\node_modules\mongodb\lib\connection_string.js:286:15)
    at new MongoClient (C:\Projects\node-mongo-registration-login-api\node_modules\mongodb\lib\mongo_client.js:46:63)
    at _createMongoClient (C:\Projects\node-mongo-registration-login-api\node_modules\mongoose\lib\connection.js:851:14)
    at NativeConnection.openUri (C:\Projects\node-mongo-registration-login-api\node_modules\mongoose\lib\connection.js:705:29)
    at Mongoose.connect (C:\Projects\node-mongo-registration-login-api\node_modules\mongoose\lib\index.js:406:15)
    at Object.<anonymous> (C:\Projects\node-mongo-registration-login-api\_helpers\db.js:4:10)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
  [Symbol(errorLabels)]: Set(0) {}
}


This is the code I was using to connect to the database:

const config = require('config.json');
const mongoose = require('mongoose');
const connectionOptions = { useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false };
mongoose.connect(process.env.MONGODB_URI || config.connectionString, connectionOptions);

...


Cause of the Mongoose error

The error was caused by the connectionOptions being passed to the mongoose.connect() method - { useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false }.

Since Mongoose v6 these are the default values for the connection options and should be removed. The below message is from the Mongoose docs:

useNewUrlParser, useUnifiedTopology, useFindAndModify, and useCreateIndex are no longer supported options. Mongoose 6 always behaves as if useNewUrlParser, useUnifiedTopology, and useCreateIndex are true, and useFindAndModify is false. Please remove these options from your code.


Solution

To fix the error I just had to remove the options when connecting to MongoDB with mongoose.connect(), below is the updated code:

const config = require('config.json');
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI || config.connectionString);

...

 


Need Some MongoDB Help?

Search fiverr for freelance MongoDB developers.


Follow me for updates

On Twitter or RSS.


When I'm not coding...

Me and Tina are on a motorcycle adventure around Australia.
Come along for the ride!


Comments


Supported by