Meteor Collection是否提供了使用mongodb的TTL(生存时间)功能的方法?需要这个用于一种带有临时数据的多用户会话。改变是完全被动的并不重要。
答案 0 :(得分:0)
这个答案的两个部分:
1)应用索引你可以在Meteor中使用_ensureIndex方法,但正如_建议的那样,可以随时提取对此的支持。在可以传递的内容方面也存在限制,但对于像
这样简单的事情db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )
..然后是mongo-livedata的标准实现
self._collection._ensureIndex(index, options);
......应该足够了。
2)我没有测试过,但我相信TTL会起作用。 (另一方面,我测试了上限集合,他们确实工作)。你知道,DDP在获取数据变化方面做了两件事:
这是第二部分意味着您可以手动进入mongo shell,删除/添加/更新内容,并且更改将在不迟于10秒之后反映出来。
在此基础上,如果您对10秒的反应延迟感到满意,那么TTL应该可行。
如果您对此不满意,可以试试Arunoda的智能系列,您可以阅读以下内容:http://meteorhacks.com/introducing-smart-collections.html。他们从oplog中读取(如果有的话),这样可以减少反应的延迟。请注意,这个概念虽然很有趣,但却存在David Glasser在此帖中所涵盖的限制:https://groups.google.com/d/msg/meteor-talk/h-ulU7guh1Y/nTfJ1F8uGxwJ
无论如何,祝你好运,让我们知道你是怎么过的。