Meteor 客户端数据库查询行为

Meteor client-side database query behavior

在跟随 Meteor 介绍 tutorial 时,我注意到有些奇怪的行为。 本教程使用此代码段从客户端代码查询数据库:

Template.body.helpers({
    tasks () {
        return Tasks.find({});
    },
});

它应该 return 找到找到的集合的游标,然后我们可以使用 .fetch() 获取实际数据并且它按预期工作。 但是每当我尝试使用类似这样的方式在客户端的 'main.js' 文件中查询时:

console.log(Tasks.find({}).fetch());

它总是打印一个空数组!有什么解释吗?

注意:当我在服务器端代码或模板助手上下文(被认为是客户端代码)中查询时,它会完美地打印数据库中的所有数据!

在计算查询时,客户端集合可能为空。顶级语句 main.js 可以 运行 在客户端收到所有来自服务器的集合数据之前。