Meteor:将文档复制到另一个集合,并在'expirationDate'之后从原始集合中删除

时间:2015-05-13 14:11:27

标签: node.js mongodb meteor cron

如果expirationDate(博客文档中的某个字段)尚未超过当前日期,我正在寻找一种有效的方式来发布博客帖子。

以下是一个简单的工作解决方案,但请在下面阅读我的目标。

Meteor.publish('nonExpiredBlogs', function() {
    var blogIds = []
    var currentDate = new Date()

    Blogs.find().forEach(function(doc) {
        var expirationDate = doc.expirationDate
        var hasExpDatePassed = (expirationDate - currenDate) < 0

        if (hasExpDatePassed === false) { // expiration date is Not passed, get the doc _id
            blogIds.push(doc._id)
        }
    });

    return Blog.find({_id: {$in: {_id: blogIds}}});
}

我想知道是否有替代方案,我不需要'forEach'功能,可以更快地计算。

例如,我是否可以实施npm node-cron-jobs来检查expirationDate是否未通过服务器当前日期,如果是,只需将文档复制到“存档”集合并将其从Blogs集合中删除

我可以使用MongoDb的time to live进行删除操作,但是,我不知道是否或如何将文档首先复制到另一个集合 - 这将是理想的解决方案。

1 个答案:

答案 0 :(得分:2)

只需创建使用https://github.com/mttkay/droid-fu/blob/master/src/test/java/com/github/droidfu/TestBase.java运算符的查询条件,即比较library(colorspace) cols <- c("#CDE4F3","#E7F3D3","#F7F0C7","#EFCFE5","#D0D1E7") lab = as(hex2RGB(cols),"LAB") lab@coords[,1] = lab@coords[,1] *0.3 # cols1 = hex(as(lab,"RGB")) cols1 字段大于当前日期的文档,即那些尚未过期的文档:

expirationDate