首页 文章

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

提问于
浏览
0

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

1 回答

  • 7

    您可以使用观察者:

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

    因此,当分别添加,更改或删除 CollectionOne 中的文档时,会触发 addedchangedremoved .

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

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

    原因是 observe 最初为每个匹配查询的文档触发 .

相关问题