2016-04-03 20 views
0

Tüm kullanıcı ConversationData (BIR Kullanıcı HASTA CovnresationData) listelemek istiyorum, ancak resmi sitede eğitim izlediğimde 'undefined' var. Yardım edin beyler!Düğüm ORM hasMany derneği

var User = db.define("user", { 
     name  : String, 
     surname : String, 
     avatar : String, 
     username : String, 
     token  : String 
    }, { 
     autoSave: true 
    }); 

var Conversation = db.define("conversations", { 
    name  : Number, 
    createdAt : Date, 
    updatedAt : Date 
}); 
var ConversationData = db.define("conversation_data", { 
    user_id   : Number, 
    conversation_id : Number 
}); 


db.sync(); 



User.hasMany('conversationsData', ConversationData, {}, { 
    autoFetch: true 
}); 
User.find({id: 1}).first(function(err, asda) { 
    cconsole.log(asda.conversationsData); 

}); 

ÇIKIŞ:

(orm/postgres) SELECT "t1"."user_id", "t1"."conversation_id", "t1"."id" FROM "conversation_data" "t1" JOIN "user_conversationsData" "t2" ON "t2"."conversationsdata_id" = "t1"."id" WHERE "t2"."user_id" = 1 
undefined 

talep bana tamamen yanlış geliyor. Anladığım kadarıyla, kullanıcı ve konuşma veri tablolarına katılmalısınız ..

cevap

0

En azından, MySQL ile gördüğüm kadarıyla, bir 'birleştirme' tablosu oluşturarak hasMany ilişkilerini idare eder, sizin durumunda muhtemelen user_conversationsData olarak bakın. Bu tablonun id (oluşturulduğu, yoksaydığı), Users tablosunu ve conversationdata_id tablosunu eşleştirmek için conversationData tablosunu eşlemek gerekir.

Üzerinde autofetch var ne ORM yapacak User getirme ve sonra conversationData tabloya ilave birleştirme-tabloyu katılarak conversationdata_id's ve conversationData's getirme olduğunu. Gördüğünüz sorgu budur.

conversationData öğesine erişmek için, onu userInstance.conversationDatas numaralı mülk olarak görebilmeniz gerekir. Bu işe yaramazsa, orada ne olduğunu görmek için console.dir(Object.keys(userInstance)) numaralı telefonu arayın.