所以我有一个外部进程,定期更新支持Meteor应用程序的Mongo数据库中的集合。我希望我的Meteor应用程序在每次更新第一个集合时采取特定操作并更新不同的集合。有没有办法可以收听Meteor的收藏?请注意,我在这里只关心服务器端。
答案 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
中的文档时,会触发changed
,removed
和CollectionOne
。
您可以使用这些回调对第二个Collection执行某些操作,或执行其他逻辑。
另外,请注意您可以更改查询。我使用createdAt
来确保观察者只触发新文档。 (如果他们有一个createdAt字段,其中包含插入的日期)。
原因是observe
最初会针对与查询匹配的每个文档触发。