Is there a way to prevent MongoDB adding plural form to collection names?

If you name your model 'mouse', Mongoose will actually pluralize the collection name correctly to 'mice' (see source code).

But you can also explicitly name your collection when creating a model by passing it as the third parameter to model:

var Mice = mongoose.model('Mice', MouseSchema, 'Mice');

API structure of mongoose.model is this: Mongoose#model(name, [schema], [collection], [skipInit])

What mongoose do is that, When no collection argument is passed, Mongoose produces a collection name by pluralizing the model name. If you don't like this behavior, either pass a collection name or set your schemas collection name option.

Example

var schema = new Schema({ name: String }, { collection: 'actor' });

// or

schema.set('collection', 'actor');

// or

var collectionName = 'actor' var M = mongoose.model('Actor', schema, collectionName);

For more information check this link: http://mongoosejs.com/docs/api.html#index_Mongoose-model