Tailable cursor vs Change streams 以通知 capped collections 中的插入操作

Tailable cursor vs Change streams for notifications of insert operations in capped collections

我很好奇在可用性和性能方面,使用可尾游标与带过滤器的更改流相比,在上限集合上进行 insert 操作的优缺点。

我有一个包含更新对象的上限集合。此集合唯一可能的操作是插入新更新(作为新记录),我需要将其中继到我的应用程序后端并通过 SSE/WebSockets 实时分发。我将在订阅查询中使用一个参数,它是一个时间戳,它是对象属性的一部分。该集合在该字段上有一个索引。我还将对新添加的记录进行一些基本过滤,因此 Change Streams 的聚合框架会有所帮助。

我已阅读: 它总结了可尾游标和一般更改流之间的区别。

此外,Capped Collections just states the Tailable cursor approach and the article on Tailable cursors 上的 mongodb 文章指出他们不使用索引,您应该使用普通游标来获取结果。

简而言之,我需要一个完全基于在集合中插入新记录的可靠的集合更新流。我应该选择哪种方法?

已创建 Tailable 游标和上限集合以支持将 oplog 从主节点复制到辅助节点。对于任何其他 activity,推荐的方法是 ChangeStream. Change streams are integrated with the MongoDB authentication model and a change stream can be take at the collection, database, cluster and sharded cluster level. Tailable cursors only work on a single collection and are not resumable. Change streams are supported by all official MongoDB Drivers