Mongo Change Stream给我收藏的所有更改?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongo Change Stream给我收藏的所有更改?相关的知识,希望对你有一定的参考价值。

阅读MongoDB Change Streams。猜猜它可以用来获取流式传输到“我的组件”的集合的所有更改。但这可能会带来巨大的开销。它实际上只对变化的一小部分感兴趣。我已经读过你可以过滤(使用$ match),但是它是如何工作的

  • a)该过滤器是否传播到MongoDB实例,以便它们只为我提供通过网络匹配的更改
  • b)或者过滤器只是我身边的“本地”便利过滤器(我仍然可以通过网络进行所有更改)

只是寻找一个简单的a)或b)答案。但是一些额外的评论不会受到伤害。

附:我对集合感兴趣的更改会动态更改,因此它不会成为确保所有“有趣”文档都进入专用集合然后从中流式更改的解决方案。但是,如果它不是太昂贵,它可以创建/删除每个“方面”的流变化手表,我感兴趣的是当它们改变时。一个已建立的流变换手表不一定必须支持更改其过滤器。

答案

只是寻找一个简单的a)或b)答案。但是一些额外的评论不会受到伤害。

MongoDB Change Streams被实施为aggregation pipeline阶段:$changeStream。这就是为什么你也可以通过串联不同的管道阶段来利用聚合管道的力量。 $match

您可能知道,聚合管道是在服务器端执行的。哪个回答你的问题;过滤器$match在服务器上执行。

请注意,更改流返回的所有事件至少都会提交给大多数副本集节点(持久)。这意味着,聚合仅在您打开更改流的节点上执行。

我对集合感兴趣的更改会动态更改,

根据您的使用情况,我建议根据不动态变化的字段进行过滤。

你可能会发现Using Change Streams to Keep Up with Your Data很有用。

以上是关于Mongo Change Stream给我收藏的所有更改?的主要内容,如果未能解决你的问题,请参考以下文章

Mongo db change datadir

使用Change Stream实时同步MongoDB数据(上)

IMFTransform::ProcessOutput 为 HE-AAC -> PCM 返回 MF_E_TRANSFORM_STREAM_CHANGE

在 MongoDB 中使用带有 Socket.io 的 Change Stream 时,“更改”被多次触发

Mongo,在历史收藏中每小时只挑选第一笔交易

操作手册 : Stream 流处理手册 (赶紧收藏)