【发布时间】:2015-12-04 19:14:10
【问题描述】:
我正在编写一个与 API 通信并将响应存储在 Meteor 集合中的应用程序,以便我可以使用 mongo 进行排序/过滤。
我想清除每个新结果集的集合。但是 Meteor Collection 是持久的。
清除收藏的首选方式是什么?我知道你可以放弃流星集合,但这是首选方法吗?
帮助表示赞赏。谢谢!
【问题讨论】:
标签: meteor
我正在编写一个与 API 通信并将响应存储在 Meteor 集合中的应用程序,以便我可以使用 mongo 进行排序/过滤。
我想清除每个新结果集的集合。但是 Meteor Collection 是持久的。
清除收藏的首选方式是什么?我知道你可以放弃流星集合,但这是首选方法吗?
帮助表示赞赏。谢谢!
【问题讨论】:
标签: meteor
我将着手创建一个仅在客户端可用的本地 mongo 集合。要创建客户端集合,请不要给它一个名称参数。
//This collection is client-only, and will not be sync with server
myCollection = new Mongo.Collection();
//To be more explicit, you can use `null` for the name:
myCollection = new Mongo.Collection(null);
使用完数据后清空集合
myCollection.remove({});
【讨论】:
remove;每次只创建一个新集合,旧集合将被垃圾收集。
myCollection.remove({}) 是从集合中删除所有文档的语法。这仅适用于服务器,除非集合是按照@Nakib 示例的客户端集合。否则只能在客户端_id 删除文档。通常,您的允许/拒绝规则应该阻止任何删除客户端上任何内容的尝试,因为它提供了一个很好的攻击向量。
【讨论】:
不完全熟悉 Meteor 最佳实践,但如果您要在 javascript 中清除数组,最佳实践是运行以下命令。
myArrary.length = 0;
如需更多信息,我推荐blog post by David Walsh,他详细说明了将数组归零的原因如下:
将长度设置为零会清空现有数组,而不是 创建另一个数组!这可以帮助您避免指针问题 数组也是如此。
【讨论】: