Mongoose — Force nom de la collection
Je suis en train d'utiliser mangouste pour créer une base de données et une collection en elle. Mon code est:
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/testdb');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
username : String,
password : String
});
mongoose.model('UserInfo', UserInfo);
var user = db.model('UserInfo');
var admin = new user();
admin.username = "sss";
admin.password = "ee";
admin.save();
Lorsque j'exécute ce code, la mangouste créé la collecte nommé UserInfo au lieu de userinfo.
Comment faire pour forcer le nom de la collection dans la mangouste?
- Fait amusant: la mangouste sait que le pluriel de bœuf est bœufs, mais pas que le pluriel de l'oie est d'oies.
Vous devez vous connecter pour publier un commentaire.
Cela devrait le faire
Voir ce lien de la Mangouste documentation pour plus d'informations.
Si vous utilisez de la mangouste 2.0.0, passer le collectionName en tant que troisième argument
Mangouste va ajouter un " s " à la collecte de nom par défaut. Si vous voulez éviter cela, il suffit de passer en tant que troisième argument le nom de la collection:
API structure de la mangouste.le modèle est: est-ce
Ce mangouste n'est qu'au moment de la cueillette argument est passé, la Mangouste produit un nom pour la collection en pluralisant le nom du modèle. Si vous n'aimez pas ce comportement, soit de passer un nom de collection ou de définir des schémas de collecte nom de l'option.
Exemple:
ou
ou
Mangouste responsable ici. Nous vous recommandons de faire
mongoose.model('UserInfo', UserInfo, 'UserInfo');
, troisième arg àmongoose.model()
est le nom de la collection. Voici les docs pertinents.Vous devez définir le nom de la collection dans votre schéma.
Réponse:
Paramètres Explication:
nom de votre modèle : userInfo.js
dans l'express fichier de route ou app.js
puis dans votre userInfo.js