mongoimport
在本页面
macOS Sierra and Go 1.6 Incompatibility
在 macOS Sierra 上运行的用户需要 3.2.10 或更高版本的 mongoimport。
Synopsis
mongoimport工具从mongoexport创建的Extended JSON,CSV 或 TSV 导出(可能是另一个第三方导出工具)中导入内容。
有关mongoexport的更多信息,请参见mongoexport文档,该文档提供反向的“导出”功能。
从系统命令行运行mongoimport,而不是mongo shell。
Considerations
Warning
避免将mongoimport和mongoexport用于完整实例生产备份。它们不能可靠地保留所有丰富的BSON数据类型,因为JSON只能表示 BSON 支持的类型的子集。如MongoDB 备份方法中所述,使用mongodump和mongorestore来实现这种功能。
mongoexport和mongoimport对某些类型使用严格模式表示。
mongoimport仅支持 UTF-8 编码的数据文件。使用其他编码会产生错误。
Required Access
为了连接到使用--auth选项强制执行授权的mongod,您必须使用--username和--password选项。连接用户必须至少在将数据导入到的数据库上具有readWrite角色。
Options
在 3.0.0 版中进行了更改:mongoimport删除了--dbpath
以及相关的--directoryperdb
和--journal
选项。要使用mongoimport,您必须根据需要对正在运行的mongod或mongos实例运行mongoimport。
-
mongoimport
-
--help
``- 返回有关 mongoimport 的选项和用法的信息。
-
--verbose
`,` `-v`
- 增加在标准输出或日志文件中返回的内部报告的数量。通过多次包含该选项(例如
-vvvvv
)来提高-v
形式的详细程度。
- 增加在标准输出或日志文件中返回的内部报告的数量。通过多次包含该选项(例如
-
--quiet
``- 在安静模式下运行 mongoimport ,以尝试限制输出量。
此选项禁止显示:
-
replication activity
-
连接接受的事件
-
连接关闭事件
-
--version
``- 返回 mongoimport 版本号。
-
--uri
<connectionString>
- 3.4.6 版中的新功能。
指定可解析的URI 连接字符串以连接到 MongoDB 部署。
--uri "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
有关连接字符串的组成部分的更多信息,请参见连接字符串 URI 格式文档。
Important
--host
<hostname><:port>
,
-h
<hostname><:port>
- 默认:localhost:27017
指定要连接的mongod的可解析主机名。默认情况下, mongoimport 尝试连接到端口27017
上在 localhost 上运行的 MongoDB 实例。
要连接到副本集,请指定replSetName以及集合成员的种子列表,如下所示:
--host <replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
指定副本集列表格式时, mongoimport 始终连接到primary。
您还可以通过指定仅该成员的主机和端口来连接到副本集的任何单个成员:
--host <hostname1><:port>
在 3.0.0 版中进行了更改:如果您使用 IPv6 并使用<address>:<port>
格式,则必须将地址和端口组合的一部分括在方括号(例如[<address>]
)中。
--port
<port>
- 默认:27017
指定 MongoDB 实例在其上侦听 Client 端连接的 TCP 端口。
--ipv6
``- 已在 3.0 版中删除.
启用 IPv6 支持,并允许 mongoimport 使用 IPv6 网络连接到 MongoDB 实例。在 MongoDB 3.0 之前,您必须指定--ipv6才能使用 IPv6.在 MongoDB 3.0 和更高版本中,始终启用 IPv6.
--ssl
``- 2.6 版的新功能。
启用与启用了 TLS/SSL 支持的mongod或mongos的连接。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslCAFile
<filename>
- 2.6 版的新功能。
指定包含来自证书颁发机构的根证书链的.pem
文件。使用相对或绝对路径指定.pem
文件的文件名。
从 3.4 版开始,如果未指定--sslCAFile
或ssl.CAFile
并且未使用 x.509 身份验证,则在连接到启用了 TLS/SSL 的服务器时将使用系统范围的 CA 证书存储。
如果使用 x.509 身份验证,则必须指定--sslCAFile
或ssl.CAFile
。
Warning
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslPEMKeyFile
<filename>
- 2.6 版的新功能。
指定同时包含 TLS/SSL 证书和密钥的.pem
文件。使用相对或绝对路径指定.pem
文件的文件名。
使用--ssl选项连接到已启用CAFile且未启用allowConnectionsWithoutCertificates的mongod或mongos时,此选项是必需的。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslPEMKeyPassword
<value>
- 2.6 版的新功能。
指定用于解密证书密钥文件的密码(即--sslPEMKeyFile)。仅当证书密钥文件已加密时,才使用--sslPEMKeyPassword选项。在所有情况下, mongoimport 都会从所有日志记录和报告输出中删除密码。
如果 PEM 文件中的私钥已加密,并且您未指定--sslPEMKeyPassword选项,则 mongoimport 将提示您 Importing 密码。参见TLS/SSL 证书密码短语。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslCRLFile
<filename>
- 2.6 版的新功能。
指定包含证书吊销列表的.pem
文件。使用相对或绝对路径指定.pem
文件的文件名。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslAllowInvalidCertificates
``- 2.6 版的新功能。
绕过服务器证书的验证检查,并允许使用无效的证书。使用allowInvalidCertificates设置时,MongoDB 将使用无效证书记录为警告。
从 MongoDB 3.6.6 开始,如果在使用 x.509 身份验证时指定--sslAllowInvalidCertificates
或ssl.allowInvalidCertificates: true
,则无效的证书仅足以构建 TLS/SSL 连接,而对于身份验证则“不足”。
Warning
对于与mongod和mongos的 TLS/SSL 连接,请尽可能避免使用--sslAllowInvalidCertificates
,并且仅在不可能进行入侵的系统上使用--sslAllowInvalidCertificates
。
如果mongo shell(和其他MongoDB Tools)与--sslAllowInvalidCertificates
选项一起运行,则mongo shell(和其他MongoDB Tools)将不会尝试验证服务器证书。这对过期的mongod和mongos证书以及冒充有效的mongod或mongos实例的外部进程造成了漏洞。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslAllowInvalidHostnames
``- 3.0 版中的新功能。
禁用 TLS/SSL 证书中的主机名验证。允许 mongoimport 连接到 MongoDB 实例,即使其证书中的主机名与指定的主机名不匹配也是如此。
有关 TLS/SSL 和 MongoDB 的更多信息,请参阅为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
--sslFIPSMode
``- 2.6 版的新功能。
指示 mongoimport 使用已安装的 OpenSSL 库的 FIPS 模式。您的系统必须具有符合 FIPS 的 OpenSSL 库,才能使用--sslFIPSMode选项。
Note
兼容 FIPS 的 TLS/SSL 仅在MongoDB Enterprise中可用。有关更多信息,请参见为 FIPS 配置 MongoDB。
--username
<username>
,
-u
<username>
- 指定用于对使用身份验证的 MongoDB 数据库进行身份验证的用户名。与--password和--authenticationDatabase选项结合使用。
Note
您不能同时指定--username和--uri。
--password
<password>
,
-p
<password>
- 指定用于对使用身份验证的 MongoDB 数据库进行身份验证的密码。与--username和--authenticationDatabase选项结合使用。
在版本 3.0.2 中进行了更改:要提示用户 Importing 密码,请传递不带--password的--username选项,或者像--password ""
一样将空字符串指定为--password值。
Note
您不能同时指定--password和--uri。
--authenticationDatabase
<dbname>
- 指定已在其中创建指定的--username的身份验证数据库。参见Authentication Database。
Note
您不能同时指定--authenticationDatabase和--uri。
--authenticationMechanism
<name>
- 默认:SCRAM-SHA-1
在 2.6 版中进行了更改:添加了对PLAIN
和MONGODB-X509
身份验证机制的支持。
在版本 3.0 中进行了更改:添加了对SCRAM-SHA-1
身份验证机制的支持。将默认机制更改为SCRAM-SHA-1
。
指定 mongoimport 实例用于对mongod或mongos进行身份验证的身份验证机制。
Value | Description |
---|---|
SCRAM-SHA-1 | RFC 5802使用 SHA1 哈希函数的标准咸化挑战响应身份验证机制。 |
MONGODB-CR | MongoDB 质询/响应身份验证。 (* MongoDB 3.6 中已弃用*) |
MONGODB-X509 | MongoDB TLS/SSL 证书认证。 |
GSSAPI (Kerberos) | 使用 Kerberos 的外部身份验证。此机制仅在MongoDB Enterprise中可用。 |
PLAIN(LDAP SASL) | 使用 LDAP 的外部身份验证。您也可以使用PLAIN 对数据库中的用户进行身份验证。 PLAIN 以纯文本形式传输密码。此机制仅在MongoDB Enterprise中可用。 |
Note
您不能同时指定--authenticationMechanism和--uri。
--gssapiServiceName
``- 2.6 版的新功能。
使用GSSAPI/Kerberos指定服务的名称。仅当服务未使用默认名称mongodb
时才需要。
此选项仅在 MongoDB Enterprise 中可用。
--gssapiHostName
``- 2.6 版的新功能。
使用GSSAPI/Kerberos指定服务的主机名。 仅如果计算机的主机名与 DNS 解析的主机名不匹配。
此选项仅在 MongoDB Enterprise 中可用。
--db
<database>
,
-d
<database>
- 指定要在其上运行 mongoimport 的数据库的名称。
--collection
<collection>
,
-c
<collection>
- 指定要导入的集合。
2.6 版中的新增功能:如果未指定--collection,则mongoimport从 Importing 文件名中获取集合名称。如果 Importing 文件具有 extensions,则 MongoDB 将从集合名称中忽略该文件的 extensions。
要同时指定字段类型和字段名称,请使用--fields和--columnsHaveTypes。
如果您在导入 JSON 数据时尝试包含--fields,则 mongoimport 将返回错误。 --fields仅用于csv或tsv导入。
--fieldFile
<filename>
- 作为--fields的替代方法,如果csv或tsv文件的文件第一行(即 Headers)中不包含字段名称,则--fieldFile选项可让您指定一个包含字段名称列表的文件。每行放置一个字段。
要同时指定字段类型和字段名称,请使用--fieldFile和--columnsHaveTypes。
如果您在导入 JSON 数据时尝试包含--fieldFile,则 mongoimport 将返回错误。 --fieldFile仅用于csv或tsv导入。
--ignoreBlanks
``- 忽略csv和tsv导出中的空字段。如果未指定,mongoimport将在导入的文档中创建没有值的字段。
如果您在导入 JSON 数据时尝试包含--ignoreBlanks,则 mongoimport 将返回错误。 --ignoreBlanks仅用于csv或tsv导入。
csv
解析器接受符合 RFC RFC 4180的数据。结果,反斜杠不是有效的转义字符。如果使用双引号将字段括在 CSV 数据中,则必须通过在其他双引号前面加上前缀来转义内部双引号。
-
--file
<filename>
- 指定包含要导入数据的文件的位置和名称。如果您未指定文件,则mongoimport从标准 Importing(例如“ stdin”)中读取数据。
-
--drop
``- 修改导入过程,以便目标实例在从 Importing 中导入数据之前删除集合。
-
--headerline
``- 如果使用--type csv或--type tsv,则将第一行用作字段名称。否则,mongoimport将第一行作为不同的文档导入。
如果您在导入 JSON 数据时尝试包含--headerline,则 mongoimport 将返回错误。 --headerline仅用于csv或tsv导入。
--mode
insert|upsert|merge
- 默认:插入
3.4 版的新功能。
指定导入过程应如何处理数据库中与导入文件中的文档匹配的现有文档。
默认情况下, mongoimport 使用_id
字段将集合中的文档与导入文件中的文档进行匹配。要指定与upsert
和merge
模式的现有文档匹配的字段,请使用--upsertFields。
Value | Description |
---|---|
insert |
将文档插入导入文件中。如果您尝试导入包含具有unique index的字段(例如_id )的重复值的文档, mongoimport 将记录错误。 |
upsert |
用导入文件中的匹配文档替换数据库中的现有文档。 mongoimport 将插入所有其他文档。 导入期间替换匹配的文档描述了如何使用--mode upsert 。 |
merge |
将与导入文件中的文档匹配的现有文档与新文档合并。 mongoimport 将插入所有其他文档。 导入期间合并匹配的文档描述了如何使用--mode merge 。 |
--upsertFields
<field1[,field2]>
- 指定upsert的查询部分的字段列表。如果现有文档中的
_id
字段与文档中的字段不匹配,则使用此选项,但是另一个字段或字段组合可以唯一地标识文档,作为执行向上插入操作的基础。
- 指定upsert的查询部分的字段列表。如果现有文档中的
在版本 3.4 中进行了更改:修改了导入过程,以在数据库中现有对象基于指定字段匹配时更新它们,同时插入所有其他对象。您无需将--mode upsert与--upsertFields结合使用。
如果您未指定字段,则--upsertFields将在_id
字段的基础上进行增补。
为了确保足够的性能,应该为该字段存在索引。
-
--stopOnError
``- 强制 mongoimport 在出现第一个错误时停止插入操作,而不是在出现错误时 continue 执行该操作。
-
--jsonArray
``- 接受单个JSON数组中由多个 MongoDB 文档表示的数据的导入。仅限于 16 MB 或更小的 import。
结合使用--jsonArray和mongoexport --jsonArray。
--maintainInsertionOrder
``- 默认:false
如果指定, mongoimport 会按照它们在 Importing 源中出现的 Sequences 插入文档,否则 mongoimport 可能会以任意 Sequences 执行插入。
--numInsertionWorkers
int
- 默认:1
3.0.0 版中的新功能。
指定要同时运行的插入工作程序的数量。
对于大型 import,增加插入 Worker 的数量可能会提高 import 速度。
--writeConcern
<document>
- 默认:多数
为 mongoimport 执行的每个写操作指定write concern。
使用w options将写关注点指定为文档。例如:
--writeConcern "{w:'majority'}"
--bypassDocumentValidation
``- 使 mongoimport 在操作过程中绕过document validation。这使您可以插入不符合验证要求的文档。
版本 3.2.1 中的新功能。
--columnsHaveTypes
``- 3.4 版的新功能。
指示 mongoimport --fields,--fieldFile或--headerline中指定的字段列表指定每个字段的类型。
字段名称的格式必须为<colName>.<type>(<arg>)
。如果要在参数中包含以下字符,则必须反斜杠转义:(
,)
和\
。
type |
Supported Arguments | Headers 字段示例 |
---|---|---|
auto() |
None. | misc.auto() |
binary(<arg>) |
base32 (RFC4648编码模式) |
|
base64 (RFC4648编码模式)hex |
user thumbnail.binary(base64) |
|
boolean() |
无。 | verified.boolean() |
date(<arg>) |
别名为date_go(<arg>) 。 语言时间解析格式。 |
created.date(2006-01-02 15:04:05) |
date_go(<arg>) |
语言时间解析格式 | created.date_go(2006-01-02 15:04:05) |
date_ms(<arg>) |
Microsoft SQL Server 格式格式 | created.date_ms(yyyy-MM-dd H:mm:ss) |
date_oracle(<arg>) |
Oracle 数据库 TO_DATE 格式。 | created.date_oracle(YYYY-MM-DD HH24:MI:SS) |
decimal() |
无 | price.decimal() |
double() |
无。 | revenue.double() |
int32() |
无。 | followerCount.int32() |
int64() |
无。 | bigNumber.int64() |
string() |
无。 | zipcode.string() |
有关用法示例,请参见导入具有指定字段类型的 CSV。
如果您在导入 JSON 数据时尝试包含--columnsHaveTypes,则 mongoimport 将返回错误。 --columnsHaveTypes仅用于csv或tsv导入。
--parseGrace
<grace>
- 默认:停止
3.4 版的新功能。
指定在导入带有--columnsHaveTypes的 CSV 或 TSV 文件时 mongoimport 如何处理类型强制错误。
导入 JSON 文档时--parseGrace无效。
Value | Description |
---|---|
autoCast |
根据字段的值分配类型。例如,如果将一个字段定义为double 且该字段的值为"foo" ,则 mongoimport 会将该字段值设置为字符串类型。 |
skipField |
对于要导入的行, mongoimport 不包括类型与预期类型不匹配的字段。 |
skipRow |
mongoimport 不会导入包含其类型与预期类型不匹配的值的行。 |
stop |
mongoimport 返回结束导入的错误。 |
Examples
Simple Import
mongoimport从使用mongoexport进行的备份中还原数据库。 mongoimport也存在mongoexport的大多数参数。
在以下示例中,mongoimport将_3 数据从contacts.json
文件导入到users
数据库中的集合contacts
中。
mongoimport --db users --collection contacts --file contacts.json
导入期间替换匹配的文档
在版本 3.4 中进行了更改:在 MongoDB 3.4 中,--mode upsert替换了不推荐使用的--upsert
选项。
对于--mode upsert
,mongoimport将数据库中与导入文件中的文档匹配的现有文档替换为导入文件中的文档。照常插入与数据库中现有文档不匹配的文档。默认情况下,mongoimport根据_id
字段匹配文档。使用--upsertFields指定要匹配的字段。
考虑example
数据库中people
集合中的以下文档:
{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal@example.com"
}
以下文档位于people-20160927.json
JSON 文件中。 JSON 对象的_id
字段与people
集合中文档的_id
字段匹配。
{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"likes" : [ "running", "pandas", "software development" ]
}
要导入people-20160927.json
文件并替换数据库中与导入文件中的文档匹配的文档,请指定--mode upsert
,如下所示:
mongoimport -c people -d example --mode upsert --file people-20160927.json
people
集合中的文档将仅包含导入文档中的字段,如下所示:
{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"likes" : [ "running", "pandas", "software development" ]
}
导入期间合并匹配的文档
3.4 版的新功能。
使用--mode merge
,mongoimport,您可以将新 Logging 的字段与数据库中的现有文档合并。照常插入与数据库中现有文档不匹配的文档。默认情况下,mongoimport根据_id
字段匹配文档。使用--upsertFields指定要匹配的字段。
example
数据库中的people
集合包含以下文档:
{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal@example.com"
}
以下文档位于people-20160927.json
JSON 文件中。 JSON 对象的_id
字段与people
集合中文档的_id
字段匹配。
{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"email": "crystal.duncan@example.com",
"likes" : [ "running", "pandas", "software development" ]
}
要导入people-20160927.json
文件并将来自导入文件的文档与数据库中的匹配文档合并,请指定--mode merge
,如下所示:
mongoimport -c people -d example --mode merge --file people-20160927.json
导入操作将 JSON 文件中的字段与数据库中的原始文档组合在一起,并基于_id
字段匹配文档。在导入过程中,mongoimport将新的username
和likes
字段添加到文档中,并使用导入的文档中的值更新email
字段,如下所示:
{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal.duncan@example.com",
"username" : "crystal",
"likes" : [
"running",
"pandas",
"software development"
]
}
将 JSON 导入通过身份验证运行的远程主机
在下面的示例中,mongoimport将数据从文件/opt/backups/mdb1-examplenet.json
导入到启用了身份验证的远程 MongoDB 数据库上的数据库marketing
内的contacts
集合中。
mongoimport通过端口37017
连接到主机mongodb1.example.net
上运行的mongod实例。它使用用户名user
和密码pass
进行身份验证。
mongoimport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --file /opt/backups/mdb1-examplenet.json
CSV Import
常规 CSV 导入
在以下示例中,mongoimport将/opt/backups/contacts.csv
文件中csv格式化的数据导入到在编号为27017
的 localhost 端口上运行的 MongoDB 实例的users
数据库中的集合contacts
中。
指定--headerline会指示mongoimport使用 CSV 文件中的第一行来确定字段名称。
mongoimport --db users --collection contacts --type csv --headerline --file /opt/backups/contacts.csv
如果未指定-c
或--collection
,则mongoimport使用 Importing 文件名(不带 extensions)作为集合名称。因此,以下示例是等效的:
mongoimport --db users --type csv --headerline --file /opt/backups/contacts.csv
导入具有指定字段类型的 CSV
3.4 版的新功能。
从 MongoDB 3.4 开始,当您指定字段名称时,还可以指定数据类型。要指定字段名称和类型,请在--columnsHaveTypes中加上--fields,--fieldFile或--headerline。
以<colName>.<type>(<arg>)
的形式指定字段名称和数据类型。
例如,一个/example/file.csv
文件包含以下数据:
Katherine Gray, 1996-02-03, false, 1235, TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg==
Albert Gilbert, 1992-04-24, true, 13, Q3VwY2FrZSBpcHN1bSBkb2xvciBzaXQgYW1ldCB0b290c2llIHJvbGwgYm9uYm9uIHRvZmZlZS4gQ2FuZHkgY2FuZXMgcGllIGNyb2lzc2FudCBjaG9jb2xhdGUgYmFyIGxvbGxpcG9wIGJlYXIgY2xhdyBtYWNhcm9vbi4gU3dlZXQgcm9sbCBjdXBjYWtlIGNoZWVzZWNha2Ugc291ZmZsw6kgYnJvd25pZSBpY2UgY3JlYW0uIEp1anViZXMgY2FrZSBjdXBjYWtlIG1hY2Fyb29uIGRhbmlzaCBqZWxseS1vIHNvdWZmbMOpLiBDYWtlIGFwcGxlIHBpZSBnaW5nZXJicmVhZCBjaG9jb2xhdGUgc3VnYXIgcGx1bS4gU3dlZXQgY2hvY29sYXRlIGNha2UgY2hvY29sYXRlIGNha2UganVqdWJlcyB0aXJhbWlzdSBvYXQgY2FrZS4gU3dlZXQgc291ZmZsw6kgY2hvY29sYXRlLiBMaXF1b3JpY2UgY290dG9uIGNhbmR5IGNob2NvbGF0ZSBtYXJzaG1hbGxvdy4gSmVsbHkgY29va2llIGNha2UgamVsbHkgYm==
以下操作将mongoimport与--fields和--columnsHaveTypes选项一起使用,以指定导入的 CSV 数据的字段名称和 BSON 类型。
mongoimport \
--db users \
--collection contacts \
--type csv \
--columnsHaveTypes \
--fields \
"name.string(),\
birthdate.date(2006-01-02),\
contacted.boolean(),\
followerCount.int32(),\
thumbnail.binary(base64)" \
--file /example/file.csv
忽略空白字段
使用--ignoreBlanks选项可忽略空白字段。对于CSV和TSV导入,此选项在大多数情况下提供所需的功能,因为它避免将具有空值的字段插入到您的集合中。
以下示例从data.csv
导入数据,跳过所有空白字段:
mongoimport --db users --collection contacts --type csv --file /example/data.csv --ignoreBlanks