2015-02-17 27 views
0

陣列我有以下的測試集合,其中每個文檔的樣子:遍歷流星

firstName: "Jeff", 
    lastname: "Harper", 
    scores:[ {'period':'week one', 'score':90}, 
       {'period':'week two', 'score':85}, 
       {'period':'week three','score':92}, 
       {'period':'week four', 'score':87} 

我想通過分數陣列迭代和CONSOLE.LOG比分。作爲一個試用版,我試過了:

Test.find()forEach(function(doc){ console.log(doc.firstName) }); 

這可以正常打印出名字。如果我想要在數組對象中打印第一個分數,即我嘗試以下語句:

Test.find()forEach(function(doc){ console.log(doc.scores[0].score) }); 

哪個不起作用。我如何訪問對象數組中的元素?

+1

這應該工作得很好。我剛剛在我的控制檯中測試了一個類似的數據結構,沒有任何問題檢查你的語法,我發現你在你的問題中找不到find()和forEach()之間的一段時間。 – 2015-02-17 21:46:30

+0

請解釋在這種情況下「不起作用」的含義。你有錯誤嗎?沒有這個,我們只能推測。也許有些文檔有一個空的分數列表? – 2015-02-17 21:54:11

+0

基督徒 - 我還沒有填寫所有的文件,因爲有一個很大的數字,還沒有包含分數數組對象。我想確保一個語法首先被刪除,並且我只是用scores數組輸入了一些文檔。這會導致問題嗎?如果是這樣,我如何測試文檔以確保它在處理它之前有分數數組對象? – slipperNine 2015-02-17 22:24:17

回答

0

感謝大家的意見。克里斯蒂安弗裏茨發現了我的問題。現在,我將搜索範圍限制爲僅包含具有對象數組的文檔。 forEach方法和fetch()方法現在都可以使用。然而,Ethaan,我不得不在主要for循環中包含一個內部for循環來獲取每個內部評分。感謝您的幫助和編輯以及美麗的亞洲公主的照片。