ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs 菜单

监听多个来源的变更

此用法示例演示了如何配置 MongoDB Kafka connector以侦听多个 MongoDB collection上的变更事件,并将其发布到 Kafka 主题。

如果您需要connector侦听一组更特定的数据库和collection上的事件,则可以使用管道。管道是 MongoDB 聚合管道,由发送给数据库的用于过滤或转换数据的指令组成。 有关如何配置connectorpipeline设置以使用表达式匹配多个数据库和collection名称,请参阅下一节的示例。

注意

databasecollection配置设置还会影响connector侦听变更事件的数据库和collection。要了解有关这些设置的更多信息,请参阅MongoDB 源连接属性指南。

以下示例向您展示如何使用聚合管道选择用于侦听变更事件的特定数据库或collection名称。

您可以通过在pipeline设置中指定以下内容,将聚合管道定义为仅选择多个数据库上的更改事件:

  • $match聚合操作符

  • ns.db,字段用于标识命名空间的数据库部分

  • $regex操作符和与数据库名称匹配的正则表达式

以下示例配置展示了如何将 Source connector 设置为侦听sandboxfirewall数据库上的更改事件:

pipeline=[{"$match": {"ns.db": {"$regex": "/^(sandbox|firewall)$/"}}}]

您可以通过在pipeline设置中指定以下内容,定义聚合管道以忽略多个collection上的事件:

  • $match聚合操作符

  • ns.coll字段,用于标识命名空间的collection部分

  • $regex操作符和匹配collection名称的正则表达式

  • $not操作符指示封闭的$regex操作符匹配正则表达式不匹配的所有内容

以下示例配置展示了如何将源connector设置为过滤掉源自任何数据库中名为“hyperspace”的所有collection的更改事件:

pipeline=[{"$match": {"ns.coll": {"$regex": {"$not": "/^hyperspace$/"}}}}]