对于MongoDB,是否有可能通过.net响应式扩展(RX)接收第三方编辑的通知?

本文关键字:RX 第三方 编辑 通知 扩展 有可能 是否 MongoDB 响应 net 对于 | 更新日期: 2023-09-27 18:14:51

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

这意味着任何第三方都可以编辑MongoDB数据库,并且服务可以监控编辑并立即实时响应。

What I have try

我花了大量的时间在Google和其他地方研究这个问题,并且浏览了所有可能相关的NuGet包。我能找到的唯一匹配的是Java,而且是在德语中。

更新1

查看可跟踪游标,这里:

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

对于MongoDB,是否有可能通过.net响应式扩展(RX)接收第三方编辑的通知?

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

我不知道具体的响应式扩展实现,但是一般的方法(如MongoDB 2.6)是在一个上限集合上创建一个可跟踪的游标——与您引用的德国博客文章中采用的方法相同。

在复制oplog上使用可尾游标,您将获得跨所有数据库的更改流,您可以根据名称空间和操作(插入,删除,更新)进行过滤。

如果我没有使用副本集呢?

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

默认情况下,64位系统(OS X除外)上的oplog大小将是可用磁盘空间的5%。您可以使用oplogSize配置参数来指定不同的oplog大小。如果不打算使用复制,可以将oplog大小减小到更适合更改通知的大小。如果你不确定合适的大小,我会保持默认值,然后根据需要按照教程更改Oplog大小。

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

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