【发布时间】:2015-04-18 17:47:01
【问题描述】:
我有以下测试集合,其中每个文档的外观如下:
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 ) } );
这是行不通的。如何访问对象数组中的元素?
【问题讨论】:
-
这应该可以正常工作。我刚刚在控制台中使用类似的数据结构进行了测试,没有出现问题。检查您的语法,我发现您在问题中缺少 find() 和 forEach() 之间的句点。
-
请解释在这种情况下“不起作用”是什么意思。你有错误吗?没有它,我们只能推测。也许有些文档的分数列表是空的?
-
Christian--我还没有填写所有文档以包含分数数组对象,因为有很多。我想先确定一下我的语法,然后我刚刚输入了一些带有分数数组的文档。这会导致问题吗?如果是这样,我如何在处理文档之前测试文档以确保它有一个分数数组对象?
标签: meteor