175 votes

Pourquoi la mangouste ajoute toujours un s à la fin du nom de ma collection

Par exemple, ce code entraîne la création d'une collection appelée « datas »

var Dataset = mongoose.model('data', dataSchema);

Et ce code se traduit par la création d'une collection appelée "users"

var User = mongoose.model('user', dataSchema);

Merci

281voto

aaronheckmann Points 3875

Mongoose essaie d'être intelligent en faisant de votre collection un nom pluriel. Vous pouvez cependant le forcer à être ce que vous voulez :

var dataSchema = new Schema({..}, { collection: 'data' })

64voto

user3785337 Points 11

La structure API de mongoose.model est la suivante :

Mongoose#model(name, [schema], [collection], [skipInit])

Quand aucun argument de collection n'est passé, Mongoose produit un nom de collection en pluralisant le nom du modèle. Si vous n'aimez pas ce comportement, passez un nom de collection ou définissez votre option de nom de collection de schémas.

Exemple :

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

ou

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

ou

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

58voto

Andrey Hohutkin Points 1894

À partir de la mangouste 5.x, vous pouvez la désactiver complètement :

mongoose.pluralize(null);

12voto

Andrea Points 101

Vous pouvez simplement ajouter une chaîne en tant que troisième argument pour définir le nom réel de la collection. Étendre vos exemples, pour conserver les noms comme data et user respectivement :

var Dataset = mongoose.model('data', dataSchema, 'data');

var User = mongoose.model('user', dataSchema, 'user');

10voto

Daniel Segura Points 457
//Mongoose's definition file. NOT your model files
1 const mongoose = require("mongoose");
2 mongoose.pluralize(null);

L'ajout de la lignemongoose.pluralize(null) dans votre fichier Mongoose empêchera la pluralisation des noms de collection. Vous n'avez pas besoin d'ajouter cette ligne à vos fichiers de modèle.

Comme on le voit ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X