收集订阅者的流星事件,用于在 mongodb 中新插入文档

Meteor event for subscriber of collection for new insert of document in mongodb

本文关键字:新插入 mongodb 文档 插入 用于 事件 流星      更新时间:2023-09-26

我有一个关于何时将新文档添加到mongodb的问题

我有一个订单对象,可以在 meteor 方法调用后添加服务器端。

我有一个名为"incomingOrders"的管理页面订阅了所有订单。

我想做的,只是在这个页面上播放声音,当一个新订单插入数据库时。

我的客户端集合使用新订单更新,但我需要它来显示某种警报(即警报框、声音、闪烁屏幕!!)

我到底该怎么做?是否有一个事件可以在插入我可以订阅的新文档时触发?

我没有测试任何代码,因为我不知道该怎么做。

所以我找到了问题的答案

我使用 cursor.observe 函数来观察文档何时添加到我的集合中。

Template['incomingOrders'].helpers({
 orders:function(){
var cursor = Orders.find({},{sort: {createdAt: -1}});
 // watch the cursor for changes
var handle = cursor.observe({
  added:function(order){
    if(!initializing){
      console.log('order from handle');
      console.log(order);
      document.getElementById('xyz').play();
    }
  }
});
    return cursor;
  }

});

我有一个初始化检查(在模板的渲染函数中设置为 false),因为在模板渲染时似乎在每个元素上调用了这个函数。然后我只需在音频元素上调用播放,以提醒我正在添加新文档。

如果有更好的方法,请通知我!