参考 > 参考 > MongoDB软件包组件 > mongofiles
mongofiles
¶macOS Sierra和Go 1.6不兼容
在macOS Sierra上运行的用户需要3.2.10或更高版本 mongofiles
。
MongoDB 4.4中即将进行的工具迁移
从MongoDB 4.4开始,该mongofiles
文档迁移到MongoDB数据库工具-mongofiles。有关即将发布的mongofiles
(工具版本100.0.0)版本的更多信息,请参见该页面
。
本页上的文档仅适用于MongoDB 4.2版本mongofiles
。mongofiles
可以按照以下“ 可用性”部分中的说明下载MongoDB 4.2版本
。
该mongofiles
实用程序使您可以从命令行操作GridFS对象中存储在MongoDB实例中的文件。它提供了存储在文件系统中的对象与GridFS之间的接口,因此它特别有用。
所有mongofiles
命令的格式如下:
该mongofiles
命令的组件是:
mongofiles
。mongofiles
。运行mongofiles
系统命令行,而不是mongo
外壳。
重要
对于副本集,
mongofiles
只能从集合的primary中读取
。
该mongofiles
工具是MongoDB工具包的一部分。请查阅所用平台的
安装指南,以获取有关如何在MongoDB安装过程中安装工具包的说明。
该工具包也可以从
MongoDB下载中心获得,可以单独tools
下载,也可以包含在
TGZ
或ZIP
下载中,具体取决于平台。在Windows上,MSI
安装程序包括所有工具作为默认安装的一部分。
小费
如果从下载中心下载TGZ
或ZIP
文件,则可能需要更新PATH
环境变量以包括安装这些工具的目录。有关
更多信息,请参见所用平台的安装指南。
为了连接到mongod
具有--auth
选项的强制授权,您必须使用
--username
和--password
选项。连接用户必须至少拥有:
从4.2版开始,MongoDB删除的--sslFIPSMode
选项mongofiles
。如果
/ 实例
配置为使用FIPS模式,mongofiles
它将使用与FIPS兼容的连接
mongod
/ 。mongos
mongod
mongos
默认情况下,mongofiles
使用read preference
primary
。要覆盖默认值,您可以在
命令行选项或中指定
读取首--readPreference
选项。--uri connection string
从4.2版开始,如果您在URI字符串中指定了读取首选项--readPreference
,而该--readPreference
值将覆盖URI字符串中指定的读取首选项。
在早期版本中,这两个选项不兼容。
从4.2版开始,您可以同时指定
--writeConcern
和
选项。如果使用两个选项都指定了写入关注点,则该
值将覆盖URI字符串中指定的写入关注点。--uri connection string
--writeConcern
在早期版本中,这两个选项不兼容。
--help
¶返回有关mongofiles选项和用法的信息。
--verbose
,
-v
¶增加标准输出或日志文件中返回的内部报告的数量。-v
通过多次包含选项来增加详细程度(例如)-vvvvv
。
--version
¶返回mongofiles发行版号。
--uri
=<connectionString>
¶3.4.6版中的新功能。
指定可解析的URI 连接字符串(用引号引起来)以连接到MongoDB部署。
有关连接字符串的组成部分的信息,请参阅“ 连接字符串URI格式”文档。
注意
对于TLS / SSL选项,请使用命令行选项代替TLS / SSL的 URI选项(从4.2开始可用)。
重要
以下命令行选项不能与--uri
option 一起使用:
--host
--port
--db
--username
--password
(如果
URI连接字符串还包含密码)--authenticationDatabase
--authenticationMechanism
而是将这些选项指定为--uri
连接字符串的一部分。
--host
=<hostname><:port>
¶为mongod
包含您的GridFS系统的主机指定一个可解析的主机名。默认情况下,mongofiles
尝试连接到在本地主机端口号上运行的MongoDB进程27017
。
(可选)指定端口号以连接在27017以外的端口上运行的MongoDB实例。
--port
=<port>
¶默认值:27017
指定MongoDB实例在其上侦听客户端连接的TCP端口。
--ipv6
¶在3.0版中删除。
启用IPv6支持,并允许mongofile使用IPv6网络连接到MongoDB实例。在MongoDB 3.0之前,您必须指定--ipv6
使用IPv6。在MongoDB 3.0和更高版本中,始终启用IPv6。
--ssl
¶启用与mongod
或mongos
已启用TLS / SSL支持的连接。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCAFile
=<filename>
¶指定.pem
包含来自证书颁发机构的根证书链的文件。.pem
使用相对或绝对路径指定文件的文件名
。
从3.4版开始,如果未指定--tlsCAFile
/ net.tls.CAFile
(或它们的别名--sslCAFile
/ net.ssl.CAFile
),并且您没有使用x.509身份验证,则在连接到启用TLS / SSL的服务器时将使用系统范围的CA证书存储。
要使用x.509身份验证,--tlsCAFile
或者net.tls.CAFile
必须指定,除非使用--tlsCertificateSelector
或
--net.tls.certificateSelector
。或者,如果使用ssl
别名,
--sslCAFile
或net.ssl.CAFile
必须指定,除非使用
--sslCertificateSelector
或net.ssl.certificateSelector
。
警告
版本3.2及更早版本:对于TLS / SSL连接(--ssl
),以
mongod
和mongos
,如果mongofiles没有运行
--sslCAFile
,mongofiles不会尝试验证服务器证书。这会造成过期mongod
和mongos
证书以及伪装成有效mongod
或
mongos
实例的外部进程的漏洞。如果可能发生入侵,请确保始终指定CA文件来验证服务器证书。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyFile
=<filename>
¶指定.pem
同时包含TLS / SSL证书和密钥的文件。.pem
使用相对或绝对路径指定文件的文件名。
使用--ssl
选项连接到mongod
或mongos
已
CAFile
启用而未
启用时,此选项是必需的allowConnectionsWithoutCertificates
。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyPassword
=<value>
¶指定用于解密证书密钥文件的密码(即
--sslPEMKeyFile
)。--sslPEMKeyPassword
仅当证书密钥文件已加密时才使用该选项。在所有情况下,mongofiles都会从所有日志记录和报告输出中删除密码。
如果PEM文件中的私钥已加密,而您未指定该--sslPEMKeyPassword
选项,则mongofiles将提示输入密码。请参阅
TLS / SSL证书密码。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCRLFile
=<filename>
¶指定.pem
包含证书吊销列表的文件。.pem
使用相对或绝对路径指定文件的文件名。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslAllowInvalidCertificates
¶绕过服务器证书的验证检查,并允许使用无效的证书。使用该
allowInvalidCertificates
设置时,MongoDB将使用无效证书记录为警告。
从MongoDB 4.0开始,如果在使用x.509身份验证时指定
--sslAllowInvalidCertificates
或
(或在MongoDB 4.2中为别名或
),则无效的证书仅足以建立TLS / SSL连接,但不足以进行身份验证。net.ssl.allowInvalidCertificates: true
--tlsAllowInvalidateCertificates
net.tls.allowInvalidCertificates: true
警告
尽管可用,但请避免使用该
--sslAllowInvalidCertificates
选项。如果必须使用
--sslAllowInvalidCertificates
,请仅在不可能进行入侵的系统上使用该选项。
如果mongo
Shell(和其他
MongoDB Tools)与该--sslAllowInvalidCertificates
选项一起运行
,则
mongo
Shell(和其他
MongoDB Tools)将不会尝试验证服务器证书。这会造成过期mongod
和mongos
证书以及伪装成有效mongod
或mongos
实例的外部进程
的漏洞
。如果仅需要禁用TLS / SSL证书中的主机名验证,请参阅--sslAllowInvalidHostnames
。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslAllowInvalidHostnames
¶禁用TLS / SSL证书中的主机名验证。允许 mongofile连接到MongoDB实例,即使其证书中的主机名与指定的主机名不匹配也是如此。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--username
=<username>
,
-u
=<username>
¶指定用于向使用身份验证的MongoDB数据库进行身份验证的用户名。与--password
和
--authenticationDatabase
选项结合使用。
注意
您不能同时指定--username
和--uri
。
--password
=<password>
,
-p
=<password>
¶指定用于对使用身份验证的MongoDB数据库进行身份验证的密码。与--username
和
--authenticationDatabase
选项结合使用。
要提示用户输入密码,请传递--username
不带选项--password
或将空字符串指定为
--password
值,如中所示。--password ""
注意
您不能同时指定--password
和--uri
。
--authenticationDatabase
=<dbname>
¶指定在其中--username
创建指定内容的认证数据库。请参阅身份验证数据库。
注意
您不能同时指定--authenticationDatabase
和--uri
。
--authenticationMechanism
=<name>
¶默认值:SCRAM-SHA-1
指定mongofiles实例用于对mongod
或进行身份验证的身份验证机制mongos
。
在版本4.0中进行了更改: MongoDB删除了对不赞成使用的MongoDB Challenge-Response(MONGODB-CR
)身份验证机制的支持。
MongoDB使用SHA-256哈希函数(SCRAM-SHA-256
)添加了对SCRAM机制的支持。
值 | 描述 |
---|---|
SCRAM-SHA-1 | 使用SHA-1哈希函数的RFC 5802标准咸化挑战响应身份验证机制。 |
SCRAM-SHA-256 | 使用SHA-256哈希函数的RFC 7677标准咸化挑战响应身份验证机制。 要求featureCompatibilityVersion设置为 版本4.0中的新功能。 |
MONGODB-X509 | MongoDB TLS / SSL证书认证。 |
GSSAPI(Kerberos) | 使用Kerberos的外部身份验证。此机制仅在MongoDB Enterprise中可用。 |
普通(LDAP SASL) | 使用LDAP的外部身份验证。您还可以PLAIN
用于验证数据库内用户。PLAIN 以纯文本形式传输密码。此机制仅在MongoDB Enterprise中可用
。 |
注意
您不能同时指定--authenticationMechanism
和--uri
。
--gssapiServiceName
=<serviceName>
¶使用GSSAPI / Kerberos指定服务的名称。仅当服务未使用默认名称时才需要mongodb
。
此选项仅在MongoDB Enterprise中可用。
--gssapiHostName
=<hostname>
¶使用GSSAPI / Kerberos指定服务的主机名。仅当计算机的主机名与DNS解析的主机名不匹配时才需要。
此选项仅在MongoDB Enterprise中可用。
--db
=<database>
,
-d
=<database>
¶指定要在其上运行mongofiles的数据库的名称。
--local
=<filename>
,
-l
=<filename>
¶指定用于获取和放置操作的文件的本地文件系统名称。
在mongofiles put和mongofiles get命令中,必需的<filename>
修饰符是指对象在GridFS中将具有的名称。mongofiles
假定这反映了本地文件系统上文件的名称。此设置将覆盖此默认设置。
--type
=<MIME>
¶提供指定MIME类型以描述插入GridFS存储的文件的功能。mongofiles
在默认操作中忽略此选项。
仅与mongofiles put操作一起使用。
--replace
,
-r
¶更改mongofile的行为,以用指定的本地文件替换现有GridFS对象,而不是添加具有相同名称的其他对象。
在默认操作中,mongofiles put选项不会覆盖文件 。
--prefix
=<string>
¶默认值:fs
要使用的GridFS前缀。
--writeConcern
=<document>
¶默认值:多数
指定mongofiles 执行的每个写入操作的写入关注点。
使用w选项将写关注点指定为文档:
如果还将包含写入关注点,则命令行
会覆盖URI字符串中指定的写入关注点。--uri
connection string
--writeConcern
--readPreference
=<string|document>
¶默认值:primary
指定读取偏好的
mongofiles。该--readPreference
选项可以采用:
如果仅指定读取首选项模式,则为字符串:
用引号引起来的文档,用于指定模式,可选的 读取首选项标签集和可选的maxStalenessSeconds:
如果指定maxStalenessSeconds,则该值必须大于或等于90。
4.2版中的新功能。
从4.2版开始,如果读取首选项也包含在中,则命令行将覆盖URI字符串中指定的读取首选项。--uri connection string
--readPreference
list <prefix>
列出GridFS存储中的文件。在list
(例如<prefix>
)之后指定的字符
(可选)将返回的项目列表限制为以该字符串开头的文件。
search <string>
列出GridFS存储中名称与的任何部分匹配的文件<string>
。
put <filename>
将指定的文件从本地文件系统复制到GridFS存储中。
在这里,<filename>
是指对象在GridFS中将具有的名称,并mongofiles
假定这反映了文件在本地文件系统上具有的名称。如果本地文件名不同,请使用该选项。mongofiles --local
get <filename>
将指定的文件从GridFS存储复制到本地文件系统。
在这里,<filename>
是指对象在GridFS中将具有的名称。mongofiles
使用filename
GridFS中的文件将文件写入本地文件系统。要为本地文件系统上的文件选择其他位置,请使用
--local
选项。
get_id "<_id>"
3.2.0版中的新功能。
将文件指定的文件<_id>
从GridFS存储复制到本地文件系统。
这里<_id>
指的是_id
GridFS中对象的扩展JSON :
get_id
可以接受的ObjectId值或非ObjectId值<_id>
。get_id
仅接受<ObjectId>
值。mongofiles
使用filename
GridFS中的文件将文件写入本地文件系统。要为本地文件系统上的文件选择其他位置,请使用
--local
选项。
delete <filename>
从GridFS存储中删除指定的文件。
delete_id "<_id>"
3.2.0版中的新功能。
<_id>
从GridFS存储中删除由其指定的文件:
delete_id
可以接受的ObjectId值或非ObjectId值<_id>
。delete_id
仅接受<ObjectId>
值。要返回数据库中GridFS集合中
所有文件的列表,请records
在系统外壳上使用以下调用:
该mongofiles
实例将连接到在localhost接口mongod
上运行的
实例,27017
以在不同的端口或主机名上指定相同的操作,并发出类似于以下内容之一的命令:
如果您要连接以下设备,请根据需要修改以下任何命令: