客户端上的Meteor.js集合为空

Nyx*_*nyx 5 javascript mongodb node.js meteor

为什么即使在内部进行调用,它也会myCollection.find().fetch()返回一个空数组?该语句是否确保在执行之前已检索到该集合?[]if(data){...}ifconsole.log()

Template.chart.rendered = function() {

        var data = myCollection.find().fetch();

        if(data) {
            console.log(data);
        }

        $('#chart').render();

}
Run Code Online (Sandbox Code Playgroud)

这将[]在浏览器Javascript控制台中返回.

Aks*_*hat 6

您可以使用count()而不是返回结果的数量.data本身是一个空数组,[]不是falsey([] == true).

fetch()除非你要使用原始数据,否则不要使用,因为它非常繁琐..forEach如果需要,您可以循环使用它.

var data = myCollection.find();

if(data.count())
  console.log(data);

//If you need it for something/Not sure if this is right but just an example
$('#chart').render(data.fetch())
Run Code Online (Sandbox Code Playgroud)