MiniMongo Collection通常会同步到Mongo Collection,因此它的生命基本上是永恒的。
我想存储一个Shopping Cart
对象。当用户登录时,存储和管理购物车数据持续的时间很容易。但是当用户没有登录时怎么办?您不希望他们导航到网站的其他部分,甚至刷新页面并彻底清除他们的购物车。但是你也不想长时间存放购物车。将内容存储一天或几小时就足够了。
miniMongo Local Collection(new Mongo.Collection("null");
)持续多长时间?我可以将购物车内容存储在本地集合中,还是在页面刷新时擦除集合?
同样,Session变量持续多长时间?
---答案摘要---
答案 0 :(得分:4)
页面刷新后会删除会话变量和本地集合,因此您可以从可能列表中删除它们。
另一种方法是将购物车数据存储在localStorage中。如果您需要支持旧版浏览器,可以直接调用localStorage API,也可以使用amplify.js(meteor package)之类的polyfill进行调用。这种方法的唯一问题是它不能在浏览器/计算机之间工作,并且它不会在标签之间产生反应。
我的建议是将购物车数据存储在一个保留updatedAt
时间戳的集合中。然后添加cron job,定期删除updatedAt
超过X小时的所有购物车。这样做的好处是可以在标签/浏览器/计算机之间进行反应,并且您可以完全控制购物车何时到期(包括添加花哨的规则,如果用户碰巧连接则不会使购物车过期)。
答案 1 :(得分:1)
GroundDB旨在在Collections API之上创建一个瘦包装器,这样您就可以在本地持久保存连接,而不需要太多编码开销,即使是离线访问也是如此。重新连接数据时刷新。 https://github.com/GroundMeteor/db