2015-09-15 19 views
1

我可以说我是新来的JS,但掌握了一切如何工作 - 但我最近尝试跳入流星,它似乎只是删除了我无法理解的快捷方式的大部分代码。一定数量后清空流星数据库/集合?

我想空出一个流星数据库的上半年一旦它击中一定数量的项目,在这种情况下,100我只有:

var printOut = MongoDatabase.find().count(); 

if (printOut > 100) { 
    //delete first 50 entries of the 100 items 
} 

预先感谢您

+0

根据什么“上半部”?创建日期?你试图达到这个目标的是什么?你失败了? –

+0

@Kyll创建日期,但是我找不到实际去掉集合中某些项目的功能,这些项目并没有逐个使用'id' –

回答

0

首先找到CreationDate截止,然后在该日期之前删除所有:

if (MongoDatabase.find().count() > 100){ 
    cutoff = MongoDatabase.find({}, {fields: {CreationDate: 1, _id: 0}, sort: {CreationDate: -1 }, limit: 50}).fetch().pop().CreationDate 
    MongoDatabase.remove({CreationDate: {$lt: cutoff}}) 
} 

这将在服务器上的工作,但如果你TR Ÿ直接在客户端,您会收到以下错误上做到这一点:

"Not permitted. Untrusted code may only remove documents by ID. [403]" 

所以,如果你需要从客户触发此,使用Meteor.Method将是最好的方式。

+0

非常感谢,我也设法找到了这个:https:/ /teamgaslight.com/blog/how-to-remove-all-elements-from-a-meteor-collection –