Meteor.js - 当另一个mongo集合发生变化时,自动更新一个Mongo集合?

时间:2014-11-21 14:46:30

标签: meteor

所以我有一个外部进程,定期更新支持Meteor应用程序的Mongo数据库中的集合。我希望我的Meteor应用程序在每次更新第一个集合时采取特定操作并更新不同的集合。有没有办法可以收听Meteor的收藏?请注意,我在这里只关心服务器端。

1 个答案:

答案 0 :(得分:7)

您可以使用观察者:

CollectionOne.find({createdAt: {$gte: new Date()}}).observe({
    added: function (document) {
        // Do something to collection 2
    },
    changed: function (newDocument, oldDocument) {
        // ...
    },
    removed: function (oldDocument) {
        // ...
    }
});

当分别添加,更改或删除added中的文档时,会触发changedremovedCollectionOne

您可以使用这些回调对第二个Collection执行某些操作,或执行其他逻辑。

另外,请注意您可以更改查询。我使用createdAt来确保观察者只触发新文档。 (如果他们有一个createdAt字段,其中包含插入的日期)。

原因是observe最初会针对与查询匹配的每个文档触发。