2017-03-23 3 views
0

Mein Schema Bestücken: -in Array von Objekt-IDs

var playlistSchema = new Schema({ 
name  : {type:String,require:true}, 
videos  : {type:[mongoose.Schema.Types.ObjectId],ref: 'Video'}, 
},{collection:'playlist'}) 

var Playlist = mongoose.model('Playlist',playlistSchema); 

ich in der Datenbank als exapmple einige Daten: -

{ 
"_id" : ObjectId("58d373ce66fe2d0898e724fc"), 
"name" : "playlist1", 
"videos" : [ 
    ObjectId("58d2189762a1b8117401e3e2"), 
    ObjectId("58d217e491089a1164a2441f"), 
    ObjectId("58d2191062a1b8117401e3e4"), 
    ObjectId("58d217e491089a1164a24421") 
], 
"__v" : 0 

}

Und das Schema von Video ist: -

var videoSchema = new Schema({ 
name  : {type:String,required:true}, 
createdAt : {type:String,default:new Date()}, 
isDisabled : {type:Boolean,default:false}, 
album  : {type: mongoose.Schema.Types.ObjectId, ref: 'Album'} 
},{collection:'video'}) 

var Video = mongoose.model('Video',videoSchema); 

Jetzt um das na zu bekommen mich der allen Videos in Wiedergabeliste ich versuche, den Code: -

var playlistModel = mongoose.model('Playlist'); 
let searchParam = {}; 
searchParam._id = req.params.pid; 
playlistModel.findOne(searchParam) 
.populate('[videos]') 
.exec(function(err,found){ 
    if(err) 
     throw err; 
    else{ 
     console.log(found.videos[0].name); 
    } 
}) 

Aber hier ich die undefinierten result.I bin immer bekommen ich nicht, wo ich falsch bin plzz jemand mir helfen, zu kurz aus diesem Problem.

+0

Warum Sie das tun, verwenden Sie [] um Videos. Ich denke nicht, dass das erforderlich ist. – Kamesh

Antwort

1

bekam die Antwort: - nur das Schema

var playlistSchema = new Schema({ 
name  : {type:String,require:true}, 
videos  : [{type:mongoose.Schema.Types.ObjectId,ref: 'Video'}], 
},{collection:'playlist'}) 

var Playlist = mongoose.model('Playlist',playlistSchema); 

ändern und verwenden nur

.populate('videos') 

statt

.populate('[videos]') 
Verwandte Themen