Mongodb Meteor如何处理来自多个用户的同一订阅?

Mongodb Meteor如何处理来自多个用户的同一订阅?,mongodb,caching,meteor,Mongodb,Caching,Meteor,当多个用户订阅时,Meteor会多次读取MongoDB中的内容吗?为了说明这一点,以下是一个示例: 如果您具有以下发布功能: 服务器: Meteor.publish('articles',function(keyword){ return Articles.find({keyword:keyword}); }); 在客户机上,您的订阅方式如下: 客户: Meteor.subscribe('articles', keyword); 当第一个用户订阅(使用关键字:“meteor”)时,需要

当多个用户订阅时,Meteor会多次读取MongoDB中的内容吗?为了说明这一点,以下是一个示例:

如果您具有以下发布功能:

服务器:

Meteor.publish('articles',function(keyword){
   return Articles.find({keyword:keyword});
});
在客户机上,您的订阅方式如下:

客户:

Meteor.subscribe('articles', keyword);
当第一个用户订阅(使用关键字:“meteor”)时,需要从MongoDB读取数据。然后,第二个用户使用相同的关键字订阅相同的发布函数。Meteor是再次去MongoDB为第二个用户获取相同的数据,还是缓存在某个地方并从缓存中提供服务?是否有可能从缓存中提供服务,并在检测到更改时让meteor更新缓存

当多个用户订阅时,Meteor会多次读取MongoDB中的内容吗

不,它使用重复查询消除。如果多个客户端订阅同一数据集,则只使用一个观察者,并且它们共享结果集的缓存。这对于poll和diff观察者以及oplog跟踪观察者都是如此。我建议大家看看David Glasser在高水平上解释这些算法是如何工作的。您的具体问题将在14分钟内解决