18.3. 对 MongoDB 集合中的文档操作

在集成中,您可以搜索、更新、删除、计数或向 MongoDB 集合添加文档。要做到这一点,在流的中间或简单集成完成连接中添加 MongoDB 连接。

先决条件

  • 您创建了 MongoDB 连接。
  • 您知道您希望连接操作的 MongoDB 集合的名称。
  • 您正在创建或编辑集成,Fuse Online 会提示您添加到集成。或者,Fuse Online 正在提示您选择完成连接。

流程

  1. Add to Integration 页面中,点您要添加 MongoDB 连接的加号。如果要添加简单的集成完成连接,请跳过这一步。
  2. 点击您要使用的 MongoDB 连接。
  3. Choose an action 页面中,选择您要连接执行的操作。
  4. 要配置操作,在 Collection name 字段中输入您要连接操作的集合名称。

    如果您选择了 Insert 操作:

    • 您已配置连接。
    • 确保集成传递给此 MongoDB 连接的数据包含 JSON 表示法,用于指定要添加到集合中的文档。
    • Next 将这个连接添加到集成。
  5. 对于所有其他操作,下表提供有关在第二个字段中配置该操作的信息。

    第二个字段是一个 JSON 表示法表达式,用于标识要操作的文档以及可能的操作详情。如果您计划将传入的 source 字段映射到表达式中的标识符,请在表达式中指定 :#variable-name

    为了完全起见,此表中也会描述 Insert 操作。

    操作它的作用参数字段返回

    数量

    计算满足您指定的计数表达式的文档数量。

    Count expression 字段中,以 {"test":"unit"} 的形式指定一个 JSON 过滤器表达式。该操作将计算具有 test 属性值的文档 数量

    java.lang.Long 实例,用于指定找到的文档数量。

    删除

    从集合中删除一个或多个文档。

    Delete expression 字段中,以 {"test":"unit"} 的形式指定一个 JSON 表达式。该操作将删除其 test 属性的值为 单元 的每个文档。

    java.lang.Long 实例,用于指定已删除的文档数量。

    查找

    查找与您指定的过滤器表达式匹配的所有文档。

    Filter expression 字段中,指定一个 JSON 表示法字符串来标识一个或多个文档。

    指定列表(数组)的 JSON 表示法。每个 list 元素标识了与过滤器表达式匹配的文档并提供文档内容。如果没有找到文档,则操作会返回一个空列表。

    您必须熟悉集合的数据模型。如果集合遵循 JSON 模式,您必须熟悉此模式,因为返回的列表元素遵循这个模式。如需更多信息,请参阅 MongoDB Data Models

    要在后续数据映射程序步骤中使用 Find 操作的输出数据,集合必须遵循 JSON 模式。这可让数据映射器显示数据字段。如需更多信息,请参阅 MongoDB 文档了解 JSON 模式验证

    insert

    在集合中添加一个或多个文档。

    没有可用于插入文档的操作配置参数。进到 MongoDB 连接的数据必须包含 JSON 表示法,用于指定要添加到集合的一个或多个文档。

    指定列表(数组)的 JSON 表示法。每个 list 元素都是插入此操作的文档。

    Update(更新)

    更新集合中的一个或多个文档。

    Filter 条件 字段中,指定 2 个参数的数组。第一个参数是一个过滤器表达式,用于标识要更新的文档。第二个参数是 MongoDB update 语句,指定如何更新文档。更新语句格式在 https://docs.mongodb.com/manual/reference/method/db.collection.update/ 中进行了描述。例如: [{"_id":11},{$set: {"test":"updated!"}}].

    java.lang.Long 实例,用于指定更新的文档数量。

    UPSERT

    更新集合中的一个或多个文档,如果没有与 Upsert 表达式匹配,则创建文档。

    Upsert 表达式 字段中,指定用于标识一个或多个文档的 JSON 表示法。该操作将使用此表达式来检测任何匹配的文档。如果操作在集合中找到匹配的文档,它会更新它。如果操作找不到匹配的文档,则操作将创建一个新文档。进入 MongoDB 连接的数据必须包含 JSON 表示法,该表示法指定:

    * 一个 _id 字段来识别它是插入还是更新操作。

    * 要添加或更新的内容。

    com.mongodb.client.result.UpdateResult 实例,用于指定更新文档的数量或新插入文档的 ID。

    每个操作都会返回一个响应。如果这是完成连接,则响应将会丢失,但您可以添加 日志 步骤来捕获响应。

  6. 点击 Next
  7. 可选的。如果这是完成连接,请添加 Log 步骤来完成集成。配置日志 步骤 以捕获响应。

结果

连接会出现在您添加它的集成视觉化中。

后续步骤

将任何其他需要的连接添加到流中。添加处理数据的任何其他步骤。通过添加任何所需的数据映射步骤来完成集成。当您配置 MongoDB 连接操作时,如果您在操作表达式中指定了任何 :#variable-name 标识符,请确保将 source 字段映射到 MongoDB connection 变量字段。