Meteor Collection-hooks不适用于外部数据库修改

时间:2018-03-10 01:59:35

标签: java mongodb meteor meteor-collection-hooks

我周围散布着一堆传感器。

这些传感器会在检测到环境发生变化时传输其状态。

数据进入服务器(使用Java构建),然后处理该信息,然后将其插入到mongoDB中。

我的meteor App本质上是这个信息的仪表板。我想在进入(分析)后立即对这些条目进行进一步处理。

我开始使用Collection-Hooks,当Meteor App对数据库进行更改时效果非常好,但是当mongo Java-Driver没有进行更改时。

我需要收集钩子来检测从Java驱动程序添加到我的mongoDB的新文档。我也没有和收藏品挂钩,欢迎任何其他服务。

1 个答案:

答案 0 :(得分:3)

您要使用的是从查询返回的游标上的Observer: https://docs.meteor.com/api/collections.html#Mongo-Cursor-observe

myCollection.find().observe({
  added(document) {
    // Do something with new document
  },
  changed(document) {
    // Update analytics in response to change
  },
  removed(oldDocument) {
    // Update analytics in response to change
  }
});

这将取决于实际数据库的内容,而不像仅在调用Meteor代码时操作的收集钩子

还值得注意的是,这些挂钩还会跟踪传递给find()的特定查询。因此,如果您只想为特定的数据子集调用这些钩子,请从@scriptkid传递此示例中的查询:

var date = moment().utc().format("YYYY-MM-DD HH:mm:ss.SSS"); 
log.find({ createdAt: { $gte: date } }).observe({
  added(document) { 
    console.log("new document added!"); 
  }, 
});