簡體   English   中英

Mongoose 返回 [Object] 而不是實際嵌入的文檔

[英]Mongoose returning [Object] instead of actual embedded document

當我填充集合中的引用時,引用集合中的嵌入文檔顯示為 [Object] 而不是實際文檔。

更多細節

我有一個歌曲架構

var songSchema=new Schema({
    songName:String
});

專輯架構

 var albumSchema=new Schema({
    title:String,
    favs:Number,
    songs:[songSchema]
})

和引用專輯的播放列表架構。

  var playlistSchema=new Schema({
    title:String,
    items: { type: Schema.ObjectId, ref: 'Album' }
})

現在當我運行以下查詢時

 Playlist
 .find()
 .populate('items')
 .exec(function (err, playlists) {
  if (err) return handleError(err);
  console.log("Result:"+playlists);
  })

我得到以下結果

Result:{ _id: 53d6b605842416b83b5fe472,
  title: 'Sad',
  items: 
   { _id: 53d6b605842416b83b5fe471,
     title: 'Awaz',
     favs: 500,
     __v: 0,
     songs: [ [Object], [Object] ] },
  __v: 0 }

請注意歌曲數組如何具有 [Object] 數組而不是實際嵌入的對象。 如何讓實際文件顯示出來?

“歌曲”嵌套超過 2 層,因此默認情況下輸出由“[對象”] 表示。 嘗試這樣做:

playlists[0].songs.forEach(function (song) {
  console.log(song);
});

如果您使用快遞。

app.get('/playlists', function (req, res, next) {
  mongoose.model('Playlist').find().populate('items').exec(function (err, docs) {
    if (err) return next(err);
    res.json(docs);
  })
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM