我正在编写一个与API通信并将响应存储在Meteor Collection中的应用程序,以便我可以利用mongo的排序/过滤功能。
我想为每个新结果集清除集合。但是Meteor Collection是持久的。
清除集合的首选方法是什么?我知道您可以删除Meteor Collection,但那是首选方法吗?
感谢您的帮助。谢谢!
我正在编写一个与API通信并将响应存储在Meteor Collection中的应用程序,以便我可以利用mongo的排序/过滤功能。
我想为每个新结果集清除集合。但是Meteor Collection是持久的。
清除集合的首选方法是什么?我知道您可以删除Meteor Collection,但那是首选方法吗?
感谢您的帮助。谢谢!
我会创建一个本地的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({});
myCollection.remove({})
是从集合中删除所有文档的语法。除非集合是客户端集合(如@Nakib的示例),否则此操作仅在服务器上执行。否则,客户端只能通过_id
删除文档。通常,您的allow/deny规则应该阻止任何尝试在客户端上删除任何内容,因为这会提供一个很好的攻击向量。
虽然我不是完全熟悉Meteor的最佳实践,但如果你想在JavaScript中清空一个数组,最好的做法是运行以下代码:
myArrary.length = 0;
如需更多信息,我建议您查看David Walsh的博客文章,其中详细介绍了将数组清零的原因:
将长度设置为零会清空现有数组,而不是创建另一个数组!这有助于避免与数组相关的指针问题。