obtenir les attributs de schéma à partir de la Mangouste Modèle
Je suis en utilisant Mongoose.js afin de créer des modèles avec des schémas.
J'ai une liste de modèles (beaucoup) et de temps en temps et je voudrais obtenir les attributs clés qui composent un modèle en particulier.
Est-il une méthode pour extraire les schémas d'attribut pour chaque modèle?
Par exemple,
var mySchema = module.exports = new Schema({
SID: {
type: Schema.Types.ObjectId
//, required: true
},
teams: {
type: [String]
},
hats: [{
val: String,
dt: Date
}],
shields: [{
val: String,
dt: Date
}],
shoes: [{
val: String,
dt: Date
}]
}
);
Est-il possible de sortir/identifier les attributs du schéma [SID, hats, teams, shields, shoes]
??
Vous devez vous connecter pour publier un commentaire.
Oui, c'est possible.
Chaque schéma a un
paths
de la propriété, qui ressemble un peu comme ceci (c'est un exemple de mon code):Vous pouvez accéder à ce par le biais d'un modèle trop. C'est en vertu de
Model.schema.paths
.modelNames()
, puis vous récupérez les modèles et leurs chemins d'accès de la même façon.N'ont pas assez de rep pour le commentaire, mais c'est aussi le crache une liste et des boucles à travers tous les types de schémas.
imprimer:
Ou, vous pouvez obtenir tous les Attributs comme un Tableau comme ceci:
schema.eachPath( )
résultatsSolution pour lodash, fonction qui a repris toutes les propriétés du schéma, à l'exclusion des spécifié
lire la suite ici https://gist.github.com/styopdev/95f3fed98ce3ebaedf5c
Si vous voulez avoir uniquement les attributs que vous avez ajouté et pas l'ajouter méthodes par l'ORM qui commence par"$___", vous avez pour transformer le document en objet, puis accéder aux attributs comme ceci:
Dans le cas où vous voulez avoir toutes les valeurs de propriété (y compris imbriquées et peuplée propriétés), il suffit d'utiliser
toObject()
méthode:La sortie serait:
Il suffit d'insérer le nom du champ que vous souhaitez obtenir.
Accepté la réponse n'a pas de travail pour moi.
Mais à l'aide de la Mangouste 5.4.2 j'ai été en mesure d'obtenir les clés de la manière suivante:
Je suis en utilisant tapuscrit, cependant. Qui pourrait avoir été le problème.