J'ai 2 schémas, Custphone
et Subdomain
. Custphone
belongs_to
a Subdomain
et Subdomain
has_many
Custphones
.
Le problème réside dans la création de la relation à l'aide de Mongoose. Mon objectif est de faire: custphone.subdomain et obtenir le sous-domaine auquel appartient le Custphone.
J'ai ceci dans mes schémas:
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : [SubdomainSchema]
Lorsque j'imprime le résultat Custphone, j'obtiens ceci:
{ _id: 4e9bc59b01c642bf4a00002d,
subdomain: [] }
Lorsque le résultat Custphone
a {"$oid": "4e9b532b01c642bf4a000003"}
dans MongoDB.
Je veux faire custphone.subdomain
et récupérez l'objet sous-domaine du custphone.
Il semble que vous cherchiez à essayer la nouvelle fonctionnalité remplir dans Mongoose.
En utilisant votre exemple ci-dessus:
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : { type: ObjectId, ref: 'SubdomainSchema' }
Le champ subdomain
sera mis à jour avec un '_id' tel que:
var newSubdomain = new SubdomainSchema({name: 'Example Domain'})
newSubdomain.save()
var newCustphone = new CustphoneSchema({phone: '123-456-7890', subdomain: newSubdomain._id})
newCustphone.save()
Pour obtenir réellement les données du champ subdomain
, vous devrez utiliser la syntaxe de requête légèrement plus complexe:
CustphoneSchema.findOne({}).populate('subdomain').exec(function(err, custPhone) {
// Your callback code where you can access subdomain directly through custPhone.subdomain.name
})