Meteor在每次查询后删除集合。

3

我正在编写一个与API通信并将响应存储在Meteor Collection中的应用程序,以便我可以利用mongo的排序/过滤功能。

我想为每个新结果集清除集合。但是Meteor Collection是持久的。

清除集合的首选方法是什么?我知道您可以删除Meteor Collection,但那是首选方法吗?

感谢您的帮助。谢谢!

3个回答

2

我会创建一个本地的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({});

不需要手动删除,每次创建新的集合,旧的集合会被垃圾回收。 - Andrew Mao

1

myCollection.remove({}) 是从集合中删除所有文档的语法。除非集合是客户端集合(如@Nakib的示例),否则此操作仅在服务器上执行。否则,客户端只能通过_id删除文档。通常,您的allow/deny规则应该阻止任何尝试在客户端上删除任何内容,因为这会提供一个很好的攻击向量。


-2

虽然我不是完全熟悉Meteor的最佳实践,但如果你想在JavaScript中清空一个数组,最好的做法是运行以下代码:

myArrary.length = 0;

如需更多信息,我建议您查看David Walsh的博客文章,其中详细介绍了将数组清零的原因:

将长度设置为零会清空现有数组,而不是创建另一个数组!这有助于避免与数组相关的指针问题。


这更多是关于Mongo,而不是Meteor。对于Mongo来说,将集合的长度设置为0是行不通的。 - rishat
谢谢您的澄清,现在我明白我的答案完全不正确。 - Nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接