我周围散布着一堆传感器。
这些传感器会在检测到环境发生变化时传输其状态。
数据进入服务器(使用Java构建),然后处理该信息,然后将其插入到mongoDB中。
我的meteor App本质上是这个信息的仪表板。我想在进入(分析)后立即对这些条目进行进一步处理。
我开始使用Collection-Hooks,当Meteor App对数据库进行更改时效果非常好,但是当mongo Java-Driver没有进行更改时。
我需要收集钩子来检测从Java驱动程序添加到我的mongoDB的新文档。我也没有和收藏品挂钩,欢迎任何其他服务。
答案 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!");
},
});