我可以说我是JS的新手,但是掌握了一切的工作原理-但是我最近尝试跳入流星,它似乎只删掉了我难以理解的快捷方式的大部分代码。

一旦流星数据库碰到一定数量的项目(在本例中为100),我就试图清空它的前半部分。我只有:

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

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


先感谢您

最佳答案

首先找到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}})
}


这将在服务器上运行,但是如果您尝试直接在客户端上执行此操作,则会收到以下错误:

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


因此,如果您需要从客户端触发此操作,则最好使用Meteor.Method。

10-06 00:32