2015-07-10 52 views
0

只是一个简单的问题。是什么导致非游标的流星阵列(流星中的DDP)

我有一个使用聚合发布的例子。

Meteor.publish('tags', function(tag){ 
    var sub = this; 
    var pipeline = [ 
     {$project: {tags:1, author: 1, title:1, permalink:1 }}, 
     {$unwind:"$tags"}, 
     {$match: {"tags": tag}}]; 
    var results = Posts.aggregate(pipeline); 
    var arrayLength = results.length; 
    for(var i=0; i < arrayLength; i++){ 
      var tags = results[i]; 
      sub.added('posts', Math.random(), tags); 
    } 
    sub.ready(); 
}); 

为什么我需要一个额外的循环来存储收集帖子中的数据。

for(var i=0; i < arrayLength; i++){ 
    var tags = results[i]; 
    sub.added('posts', Math.random(), tags); 
} 
sub.ready(); 

如果我返回的结果不包括环路sub.added我将获得非光标错误的阵列上我的客户命名空间。

在我的情况

回答

0

这个代码

sub.added('posts', Math.random(), tags); 

我们刚才说的DDP是id = Math.random()fields = tags加入到帖子收集记录下来。 ddp用于绑定客户端和服务器,当我们订阅(客户端应用程序)时,它应该转移到客户端。

流星平台的例证: enter image description here

DDP已经是一个默认的包一次流星的应用程序是创建。