【发布时间】:2014-11-21 23:06:19
【问题描述】:
所以我有一个外部进程,它会定期更新支持我的 Meteor 应用程序的 Mongo 数据库中的集合。我希望我的 Meteor 应用程序在每次更新第一个集合时采取特定操作并更新不同的集合。有什么方法可以让我在 Meteor 中收听合集吗?请注意,这里我只关心服务器端。
【问题讨论】:
标签: meteor
所以我有一个外部进程,它会定期更新支持我的 Meteor 应用程序的 Mongo 数据库中的集合。我希望我的 Meteor 应用程序在每次更新第一个集合时采取特定操作并更新不同的集合。有什么方法可以让我在 Meteor 中收听合集吗?请注意,这里我只关心服务器端。
【问题讨论】:
标签: meteor
你可以使用观察者:
CollectionOne.find({createdAt: {$gte: new Date()}}).observe({
added: function (document) {
// Do something to collection 2
},
changed: function (newDocument, oldDocument) {
// ...
},
removed: function (oldDocument) {
// ...
}
});
所以added、changed 和removed 分别在添加、更改或删除来自CollectionOne 的文档时被触发。
您可以使用这些回调对第二个 Collection 执行某些操作,或执行其他逻辑。
另外,请注意您可以更改查询。我使用createdAt 来确保观察者只针对新文档触发。 (如果他们有一个 createdAt 字段,其中包含插入日期)。
原因是observe 最初为每个匹配查询的文档触发一次。
【讨论】: