meteor - 是时候与 Meteor.Collection 一起生活了

标签 meteor

Meteor Collection 是否提供任何使用 TTL 的方法? mongodb 的(生存时间)功能?对于具有临时数据的多用户 session 需要它。更改是否完全响应并不重要。

最佳答案

这个答案分为两部分:

1) 要应用索引,您可以使用 Meteor 中的 _ensureIndex 方法,但是正如 _ 所示,可以随时取消对此的支持。可以传递的内容也可能存在限制,但对于像这样简单的事情

db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )

..然后是mongo-livedata的标准实现

self._collection._ensureIndex(index, options);

...应该足够了。

2) 我还没有测试过,但我确信 TTL 会起作用。 (另一方面,我测试了上限集合,它们确实有效)。您会看到,DDP 在获取数据更改方面所做的工作有两个方面:

  • 它在知道 Meteor 驱动的每次写入操作后轮询 mongo
  • 无论如何,它每 10 秒轮询一次 mongo(用于带外更新)

第二部分意味着您可以手动进入 mongo shell,删除/添加/更新内容,更改将在 10 秒内反射(reflect)出来。

在此基础上,如果您对 10 秒的 react 延迟感到满意,那么 TTL 应该可以工作。

如果您对此不满意,您可以尝试 Arunoda 的智能集合,您可以在以下位置阅读更多信息:http://meteorhacks.com/introducing-smart-collections.html 。他们从 oplog 中读取(如果有的话),这样可能会减少 react 性的延迟。请注意,这个概念虽然有趣,但也有局限性,David Glasser 在这篇文章中已介绍过:https://groups.google.com/d/msg/meteor-talk/h-ulU7guh1Y/nTfJ1F8uGxwJ

无论如何,祝你好运,并告诉我们你的进展如何。

关于meteor - 是时候与 Meteor.Collection 一起生活了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290196/

相关文章:

javascript - 如果选中复选框,则传递复选框值

javascript - 如何创建响应式(Reactive)和非响应式(Reactive) Meteor 模板?

javascript - Meteor 中的动画

javascript - 如何更新嵌套用户集合

javascript - Meteor JS 中的搜索工具

javascript - meteor JS : Organizing Code for Sharing Code Between Template Helpers

javascript - 打开需要异步查找的新窗口时避免弹出窗口阻止程序

javascript - 将鼠标悬停在 Meteor onRendered 函数中的 chart.js 值上会导致图表轴偏移

javascript - 为什么 Meteor 更新会覆盖我文档中的现有属性?

node.js - 使用 git/repository 部署 meteor 应用程序?