有了MongoDB,是否可以通过.NET Reactive Extensions(RX)接收第三方编辑的通知?

我想知道是否有人知道是否有可能通过C#中的反应扩展(RX)获得任何编辑MongoDB数据库的实时通知?

这意味着任何第三方都可以编辑MongoDB数据库,服务可以监控编辑并即时对它们做出反应。

我曾经尝试过

我花了大量的时间在Google和其他地方研究这个问题,并且通过了所有可能相关的NuGet包。 我能find的唯一的比赛涉及Java,并且是德语的 。

更新1

看着可以玩的游标,在这里:

http://www.warski.org/blog/2012/11/event-streaming-with-mongodb/

Solutions Collecting From Web of "有了MongoDB,是否可以通过.NET Reactive Extensions(RX)接收第三方编辑的通知?"

如何跟踪第三方对MongoDB数据的更改

我没有意识到具体的Reactive Extensions实现,但是一般的方法(如在MongoDB 2.6)将创建一个可封闭的集合上的可拖动游标 – 在您引用的德国博客文章中采用了相同的方法。

使用复制操作日志上的可拖动光标,您将在所有数据库中获得可根据需要通过名称空间和操作(插入,删除,更新)进行过滤的更改流。

如果我不使用副本集?

虽然oplog通常仅用于复制,但如果您有独立的MongoDB服务器,则还可以将其作为单个节点副本集运行,唯一的好处是oplog

默认情况下,64位系统(OS X除外)上的oplog大小将为可用磁盘空间的5%。 您可以使用oplogSize配置参数来指定不同的oplog大小。 如果您不打算使用复制,则可以将oplog大小减小到更适合您的更改通知的值。 如果您不确定尺寸是否合适,我将按照默认设置离开,稍后按照教程改变Oplog尺寸(如果需要的话)。

要将独立服务器转换为单个节点副本集,您基本上需要:

  • 为您的副本集添加一个唯一名称的replSet配置值(如果您想要的初始大小与默认大小不同,可以选择oplogSize
  • 重新启动你的MongoDB服务器,使这个改变生效
  • 作为mongo shell中的一次,运行rs.initiate()来创建副本集配置并预先分配oplog