Remplir une mangouste modèle avec un champ qui n'est pas une id
Est-il possible de remplir une mangouste modèle avec un champ d'un modèle de référence qui n'est pas le _id ... par exemple, un nom d'utilisateur.
donc quelque chose comme
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : { type: String, field: "username", ref: 'Story' }
});
Avance rapide jusqu'en 2017, et Glacial de la réponse devrait être la accepté de répondre.
OriginalL'auteur angulord | 2013-10-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
populate()
API.L'API est plus souple, vous n'avez pas à spécifier
ref
etfield
dans le Schéma.http://mongoosejs.com/docs/api.html#document_Document-populate
http://mongoosejs.com/docs/api.html#model_Model.populate
Vous pouvez mélanger et assortir avec
find()
.À venir, de SORTE qu'après la lecture de la documentation, si j'ai bien compris je ne serais pas à la recherche de réponses ici.
Vous devez toujours configurer votre Schéma pour remplir à utiliser, en ajoutant une référence.
OriginalL'auteur leesei
C'est pris en charge depuis Mangouste 4.5, et est appelé virtuals de la population.
Vous devez définir votre clés étrangères des relations après votre schémas de définitions et avant la création de modèles, comme ceci:
OriginalL'auteur Frosty Z
Il semble qu'ils appliquent à l'utilisation
_id
, et peut-être qu'on peut le personnaliser à l'avenir.Ici est la question sur Github https://github.com/LearnBoost/mongoose/issues/2562
OriginalL'auteur Leo Gao
Ceci est un exemple de l'utilisation de l' $recherche globale pour remplir un modèle appelé Inviter avec l'Utilisateur, basé sur le
email
champ:C'est probablement assez similaire à ce que vous essayez de faire.
OriginalL'auteur Lotus