2

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

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

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

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

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

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

4

1 回答 1

3

您要使用的是从查询返回的光标上的观察者: 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!"); 
  }, 
}); 
于 2018-03-10T08:04:20.770 回答