我和meteor和mongodb进行了一次工作聊天,但是当有新消息时我想播放声音或其他东西。但是,我不知道如何检查数据是否更新。我可以通过计算更新前后的消息来检查是否有新消息,但我只是不知道如何检查更新。
所以我的问题是:如何检查数据中的更新?
答案 0 :(得分:1)
我有一个网站需要在新邮件到达时弹出一个toastr警报。我的收藏名为" Alerts"。这就是我的工作:
Alerts.find({notified: false}).observeChanges({
added: function(id, doc) {
Alerts.update(id, {
$set: {
notified: true
}
});
toastr.info(foo, bar);
}
});
每当创建一个新警报时,其字段"已通知"如果为false,将创建一个toastr警报,并将该警报标记为"通知:true"。
或者你可以做同样的事情,但创建一个单独的"通知"在观察时,它们也会从集合中删除,这些集合是聊天消息集合中的一个独特集合。
答案 1 :(得分:0)
您可以创建a tailing cursor on the oplog collection,这样只要数据库中的某些内容(任何内容!)发生变化,您就会获得一个新文档。但这并不是一个优雅的解决方案,因为该处理程序需要处理大量垃圾。
将消息写入数据库的例程也可能更好地通知任何当前在线用户。没有充分的理由绕过数据库。