Par exemple, ce code entraîne la création d'une collection appelée "datas"
var Dataset = mongoose.model('data', dataSchema);
Et ce code entraîne la création d'une collection appelée "utilisateurs"
var User = mongoose.model('user', dataSchema);
Merci
Réponses:
Mongoose essaie d'être intelligent en rendant le nom de votre collection au pluriel. Vous pouvez cependant le forcer à être ce que vous voulez:
var dataSchema = new Schema({..}, { collection: 'data' })
la source
La structure de l'API de mongoose.model est la suivante:
Ce que mangouste fait, c'est que, lorsqu'aucun argument de collection n'est passé, Mongoose produit un nom de collection en mettant au pluriel le nom du modèle. Si vous n'aimez pas ce comportement, transmettez un nom de collection ou définissez votre option de nom de collection de schémas.
Exemple:
ou
ou
la source
À partir de mongoose 5.x, vous pouvez le désactiver complètement:
la source
Vous pouvez simplement ajouter une chaîne comme troisième argument pour définir le nom réel de la collection. Extension de vos exemples, pour conserver les noms comme
data
etuser
respectivement:la source
Vous pouvez ajouter le nom de la collection comme troisième paramètre. Voir l'exemple utilisant Typescript:
la source
L'ajout de la ligne
mongoose.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 vu ici .
la source
À la fin de la définition de votre schéma sur la ligne suivante Utilisez ce code
En supposant que votre état est ce que vous voulez utiliser sur votre base de données pour éviter les s comme états
Cliquez sur le lien pour afficher l'image correctement
la source
Mongoose compile un modèle pour vous lorsque vous exécutez cette commande
Le premier argument est le nom singulier de la collection pour laquelle votre modèle est destiné. Mongoose recherche automatiquement la version plurielle en minuscules du nom de votre modèle. Ainsi, pour l'exemple ci-dessus, le modèle enfant est pour la collection children dans la base de données.
Remarque: la
.model()
fonction fait une copie du schéma. Assurez-vous d'avoir ajouté tout ce que vous voulez schématiser, y compris les hooks, avant d'appeler.model()
!la source