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

Meteor Collection-hooks not working for external DB modifications

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

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

数据进入服务器(使用 Java 构建),在那里处理该信息,然后将其插入 mongo 数据库。

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

我开始使用 Collection-Hooks,它在 Meteor 应用程序对数据库进行更改时效果非常好,但在 mongo Java-Driver 进行更改时效果不佳。

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

您要使用的是从查询返回的游标上的观察者: 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!"); 
  }, 
});