javascript - tutorial - node js rest api framework
Node.js-Creando relaciones con la mangosta (2)
Tengo 2 Custphone
, Custphone
y Subdomain
. Custphone
belongs_to
un Subdomain
y Subdomain
Custphones
.
El problema está en crear la relación usando Mongoose. Mi objetivo es hacer: custphone.subdomain y obtener el Subdominio al que pertenece el Custphone.
Tengo esto en mis esquemas:
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : [SubdomainSchema]
Cuando imprimo el resultado de Custphone obtengo esto:
{ _id: 4e9bc59b01c642bf4a00002d,
subdomain: [] }
Cuando el resultado de Custphone
tiene {"$oid": "4e9b532b01c642bf4a000003"}
en MongoDB.
Quiero hacer custphone.subdomain
y obtener el objeto del subdominio del custphone.
Parece que está intentando probar la nueva funcionalidad de llenado en Mongoose.
Usando tu ejemplo de arriba:
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : { type: ObjectId, ref: ''SubdomainSchema'' }
El campo del subdomain
se actualizará con un ''_id'' como:
var newSubdomain = new SubdomainSchema({name: ''Example Domain''})
newSubdomain.save()
var newCustphone = new CustphoneSchema({phone: ''123-456-7890'', subdomain: newSubdomain._id})
newCustphone.save()
Para obtener datos del campo del subdomain
tendrá que usar la sintaxis de consulta un poco más compleja:
CustphoneSchema.findOne({}).populate(''subdomain'').exec(function(err, custPhone) {
// Your callback code where you can access subdomain directly through custPhone.subdomain.name
})
Tuve un problema similar y tuve que usar Model.findByIdAndUpdate () de mangosta
documentos: http://mongoosejs.com/docs/api.html#model_Model.findByIdAndUpdate
este post me ayudó también: http://blog.ocliw.com/2012/11/25/mongoose-add-to-an-existing-array/comment-page-1/#comment-17812