我正在编写一个应用程序,它与API通信,并将响应存储在Meteor集合中,这样我就可以使用mongo进行排序/筛选。
我想清除每一个新的结果集的集合。但是流星集合是持久的。
清除集合的首选方法是什么?我知道你可以放弃收集流星,但这是首选的方法吗?
帮助感激。谢谢!
发布于 2015-12-04 19:25:36
我会继续创建一个本地的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({});
发布于 2015-12-04 22:32:55
myCollection.remove({})
是从集合中删除所有文档的语法。这将只在服务器上工作,除非集合是客户端集合,如@Nakib的示例所示。否则,只能由客户端的_id
删除文档。通常,允许/拒绝规则应该阻止在客户机上删除任何内容的尝试,因为它提供了一个很好的攻击矢量。
发布于 2015-12-04 19:18:41
不完全熟悉Meteor最佳实践,但是如果要清除javascript中的数组,最好的做法是运行以下代码。
myArrary.length = 0;
关于更多信息,我推荐这个大卫·沃尔什的博客文章,他详细介绍了将数组归零的原因,如下所示:
将长度设置为零将清空现有数组,而不是创建另一个数组!这也有助于避免数组中的指针问题。
https://stackoverflow.com/questions/34095803
复制相似问题