Meteorjs :对集合的查询是否占用 meteor 服务器上合并框中的内存



Meteor服务器需要在客户端上保留数据的副本,以管理"订阅"。在订阅中,如果数据库中发生更改,服务器通过在合并框中查看此本地副本,仅将适当的数据发送到客户端。

比如说,我有一个帖子集合,如下所示:

Posts = new Mongo.Collection("posts");

如果我从客户端(浏览器)调用像 Posts.findOne() 这样的查询,服务器是否也会将这些查询的结果缓存在服务器上的合并框中以跟踪客户端上可用的数据。请注意,这些查询不是从发布函数调用的。这些查询是从浏览器调用的。

在以下情况星服务器的行为方式:

  1. 帖子收藏集何时有订阅?
  2. 当帖子没有订阅时?

在客户端上,findfindOne 只作用于客户端上的 minimongo。因此,服务器对此一无所知。合并框仅与您定义的发布-订阅函数相关。因此,要回答您的问题:

  1. 当帖子集合有订阅和发布时,服务器会为客户端创建/扩充现有的合并框。这会消耗 CPU 和内存来保持客户端和服务器同步。
  2. 当您的帖子集合没有订阅时,客户端的 Post 集合应为空(除非您从客户端添加到它)。 findfindOne 应返回空游标或空对象。

最新更新