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

jon*_*omo 0 meteor

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

Aks*_*hat 7

您可以使用观察者:

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

所以added,changedremoved被解雇时从文件CollectionOne添加,更改或删除分别.

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

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

原因是observe最初对于与查询匹配的每个文档都会触发一次.