对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs 菜单

流式写入配置选项

以流式传输模式向 MongoDB 写入数据时,可以配置以下属性。

注意

如果您使用 SparkConf 设置连接器的写入配置,请为每个属性添加前缀 spark.mongodb.write.

属性名称
说明

connection.uri

必需。
连接字符串配置键。默认值:

mongodb://localhost:27017/

database

必需。
数据库名称配置。

collection

必需。
集合名称配置。

comment

要附加到写入操作的注释。注释显示在数据库分析器的输出中。默认值:无

mongoClientFactory

MongoClientFactory 配置键。您可以指定必须实现 接口的自定义实施。默认值:
com.mongodb.spark.sql.connector.connection.MongoClientFactory

com.mongodb.spark.sql.connector.connection.DefaultMongoClientFactory

convertJson

指定Connector是否解析字符串值并将扩展JSON转换为BSON。此设置接受以下值:

  • any:Connector 将所有 JSON 值转换为 BSON。

    • "{a: 1}" 变为 {a: 1}

    • "[1, 2, 3]" 变为 [1, 2, 3]

    • "true" 变为 true

    • "01234" 变为 1234

    • "{a:b:c}" 不变。

  • objectOrArrayOnly:Connector 仅将 JSON 对象和数组转换为 BSON。

    • "{a: 1}" 变为 {a: 1}

    • "[1, 2, 3]" 变为 [1, 2, 3]

    • "true" 不变。

    • "01234" 不变。

    • "{a:b:c}" 不变。

  • false:Connector 将所有值保留为字符串。

默认: false

idFieldList

指定用于分割集合数据的字段或字段列表。要指定多个字段,请使用逗号分隔字段,如以下示例所示:

"fieldName1,fieldName2"

默认: _id

ignoreNullValues

如果为true ,则Connector在写入时会忽略任何null 值,包括数组和嵌套文档中的null 值。默认值:

false

maxBatchSize

指定批量操作中要批处理的最大操作数。默认值:

512

operationType

指定要执行的写入操作类型。可以将其设置为下列其中一个值:

  • insert:插入数据。

  • replace:将与 idFieldList 值匹配的现有文档替换为新数据。如果不存在匹配项,则 upsertDocument 的值指示 Connector 是否插入新文档。

  • update:使用新数据更新与 idFieldList 值匹配的现有文档。如果不存在匹配项,则 upsertDocument 的值指示 Connector 是否插入新文档。


默认: replace

ordered

指定是否执行有序批量操作。默认值:

true

upsertDocument

true 时,如果不存在匹配项,则替换和更新操作会插入数据。对于时间序列集合,必须将

upsertDocument设立为 。默认值:false

true

writeConcern.w

指定w

,这是一个写关注选项,请求确认写入操作已传播到指定数量的MongoDB节点。有关此选项允许值的列表,请参阅MongoDB Server手册中的 WriteConcern w 选项。默认值:

Acknowledged

writeConcern.journal

j指定 ,这是一个写关注选项,请求确认数据已根据w 选项中指定的条件写入磁盘上日志。您可以指定truefalse 。有关

j值的更多信息,请参阅MongoDB Server手册中的 WriteConcern j 选项。

writeConcern.wTimeoutMS

指定wTimeoutMS ,这是一个写关注选项,用于在写入操作超过指定的毫秒数时返回错误。如果使用此可选设置,则必须指定一个非负整数。有关

wTimeoutMS值的更多信息,请参阅MongoDB Server手册中的 WriteConcern wtimeout。

checkpointLocation

forceDeleteTempCheckpointLocation

布尔值,指定是否删除现有检查点数据。默认值:

false

truncateMode

指定在执行覆盖时如何截断集合。您可以将此选项设立为以下值之一:

  • TruncateMode.DROP默认。删除集合。

  • TruncateMode.TRUNCATE:删除集合中的所有条目,但保留索引、集合选项和任何分片配置。这比删除操作要慢。

ignoreDuplicatesOnInsert

设立为true 时,Connector在执行无序插入操作时会忽略重复键错误。插入的数据必须包含_id 字段值或idFieldList 选项中指定的字段。默认值:

false

如果使用 SparkConf 指定了之前的任何设置,可以将其包含在 connection.uri 设置中,也可以单独列出。

以下代码示例显示如何将数据库、集合和 convertJson 设置指定为 connection.uri 设置的一部分:

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/myDB.myCollection?convertJson=any

为了缩短 connection.uri 并使设置更易于阅读,您可以改为单独指定它们:

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/
spark.mongodb.write.database=myDB
spark.mongodb.write.collection=myCollection
spark.mongodb.write.convertJson=any

重要

如果您在 connection.uri 及其自己的行中都指定了某个设置,则 connection.uri 设置优先。例如,在以下配置中,连接数据库为 foobar

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/foobar
spark.mongodb.write.database=bar