我正在从 Meteor 中的 MongoDB 获取文档,如下所示:
Template.SubTasks.helpers ({
subelement: function (){
var sublen = TodosCol.find(this);
// var sublen2 = ????
return sublen2;
}
});
效果很好,sublen 作为对象返回。但是当我尝试将其转换为数组时(例如:
var sublen2 = sublen.toArray();
或
var sublen = TodosCol.find(this).toArray();
或整个集合(没有“this”),它不起作用,我在 chrome 控制台中收到“undefined is not a function”错误。
我也试过
var sublen2 = sublen.propertyName;
因为它是一个对象,没有运气。
我做错了什么?
谢谢
编辑:
我正在尝试迭代存储在 mongo 文档中的数组中的值。我想将它们作为单独的 div 输出。这是一个简单的任务列表。任务迭代得很好,但我正在尝试输出分配给特定任务的子任务。子任务作为字符串数组存储在与其“父任务”相同的文档中。
模板:
<template name='SubTasks'>
<div class='sub-output {{_id}}'>
{{#each subelement}}
<div class='sub-task {{_id}}'>
{{subtask}}
</div>
{{/each}}
</div>
</template>
最佳答案
如果 TodosCol
是一个集合,那么它的 .find()
方法返回一个 Cursor - http://docs.meteor.com/#/basic/Mongo-Collection-find .游标可用于使用 {{each}}
高效且响应式(Reactive)地遍历结果。
如文档所述,如果您想要 find()
调用的结果,您需要调用 .fetch()
- 在 http://docs.meteor.com/#/full/mongo_cursor 了解更多信息
关于javascript - Mongo文档到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166856/