mongo_replica_set_client
--用于连接到MongoDB副本集的工具¶
已弃用。看到了吗 高可用性和PyMongo .
-
class
pymongo.mongo_replica_set_client.
MongoReplicaSetClient
(hosts_or_uri, document_class=dict, tz_aware=False, connect=True, **kwargs)¶ MongoDB实例、副本集或一组Mongose的客户端。
客户机对象是线程安全的,并且内置了连接池。如果操作因网络错误而失败,
ConnectionFailure
引发,客户端在后台重新连接。应用程序代码应处理此异常(识别操作失败),然后继续执行。这个 host parameter can be a full mongodb URI ,以及一个简单的主机名。它也可以是主机名或uri的列表。主机字符串中指定的任何端口都将重写 port 参数。如果传递了多个包含数据库或身份验证信息的mongodb uri,则将使用最后一个存在的数据库、用户名和密码。对于用户名和密码,诸如“:”、“/”、“+”和“@”等保留字符必须按照RFC 2396进行百分比编码:
try: # Python 3.x from urllib.parse import quote_plus except ImportError: # Python 2.x from urllib import quote_plus uri = "mongodb://%s:%s@%s" % ( quote_plus(user), quote_plus(password), host) client = MongoClient(uri)
还支持Unix域套接字。套接字路径必须在URI中进行百分比编码:
uri = "mongodb://%s:%s@%s" % ( quote_plus(user), quote_plus(password), quote_plus(socket_path)) client = MongoClient(uri)
但当作为简单主机名传递时则不是:
client = MongoClient('/tmp/mongodb-27017.sock')
从3.6版开始,PyMongo支持mongodb+srv://URIs。URI必须包含且仅包含一个主机名。主机名将解析为一个或多个DNS SRV records 它将用作连接到MongoDB部署的种子列表。使用SRV uri时 authSource and replicaSet configuration options can be specified using TXT records . 见 Initial DNS Seedlist Discovery spec 更多细节。注意,SRV uri的使用隐式地支持TLS。在要重写的URI中传递tls=false。
注解
当使用mongodb+srv://uri时,MongoClient创建将阻止等待来自DNS的应答。
注解
从3.0版开始
MongoClient
构造函数在连接到一个或多个服务器时不再阻塞,并且不再引发ConnectionFailure
如果它们不可用,或者ConfigurationError
如果用户的凭据错误。相反,构造函数立即返回并在后台线程上启动连接进程。您可以检查服务器是否可用,如下所示:from pymongo.errors import ConnectionFailure client = MongoClient() try: # The ismaster command is cheap and does not require auth. client.admin.command('ismaster') except ConnectionFailure: print("Server not available")
警告
在多处理上下文中使用PyMongo时,请阅读 在多处理中使用PyMongo 第一。
注解
可以使用MongoDB URI或关键字参数传递以下许多选项。如果在URI中传递相同的选项,并且作为关键字参数,则关键字参数优先。
- 参数
host (可选):要连接的单个mongod或mongos实例的主机名或IP地址或Unix域套接字路径,或mongodb URI,或主机名/mongodb URI的列表。如果 host 是IPv6文本,它必须包含在' [“和”] 'RFC2732 URL语法后的字符(例如' [::1] '用于本地主机)。多宿主和循环DNS地址是 not 支持。
port (可选):要连接的端口号
document_class (可选):用于从此客户端上的查询返回的文档的默认类
type_registry (可选):实例
TypeRegistry
启用自定义类型的编码和解码。tz_aware (可选):如果
True
,datetime
在文档中作为值返回的实例MongoClient
会知道时区(否则他们会很幼稚)connect (可选):如果
True
(默认),立即开始在后台连接到MongoDB。否则在第一次操作时连接。- directConnection (可选):如果
True
,强制此客户端 作为独立主机直接连接到指定的MongoDB主机。如果
false
,客户端连接到给定MongoDB主机所属的整个副本集。如果这是True
如果提供了mongodb+srv://URI或包含多个种子的URI,则会引发异常。
- directConnection (可选):如果
其他可选参数可以作为关键字参数传递:maxPoolSize (可选):每个已连接服务器的最大允许并发连接数。对服务器的请求将阻止 maxPoolSize 到请求服务器的未完成连接。默认为100。不能为0。
minPoolSize (可选):池将与每个连接的服务器保持的最小并发连接数。默认值为0。
maxIdleTimeMS (可选):在删除和替换连接之前,连接在池中可以保持空闲的最长毫秒数。默认为 None (无限制)。
socketTimeoutMS :(整数或无)控制驱动程序在发送普通(非监视)数据库操作后,在断定发生了网络错误之前等待响应的时间(毫秒)。
0
或None
表示没有超时。默认为None
(没有超时时间)。connectTimeoutMS :(整数或无)控制在服务器监视期间,当将新套接字连接到服务器时,驱动程序将等待多长时间(以毫秒为单位)。
0
或None
表示没有超时。默认为20000
(20秒)。server_selector :(可调用或无)可选,用户提供的函数,用于扩充服务器选择规则。函数应接受
ServerDescription
对象并返回一个服务器描述列表,该列表应被认为适合所需的操作。serverSelectionTimeoutMS :(整数)控制驱动程序等待找到可用的、适当的服务器以执行数据库操作的时间(以毫秒为单位);在等待期间,可以执行多个服务器监视操作,每个操作由 connectTimeoutMS .默认为
30000
(30秒)。waitQueueTimeoutMS :(整数或无)如果池中没有可用的套接字,线程将等待池中的套接字多长时间(以毫秒为单位)。默认为
None
(没有超时时间)。waitQueueMultiple :(整数或无)乘以maxPoolSize得到一次允许等待套接字的线程数。默认为
None
(无限制)。heartbeatFrequencyMS :(可选)定期服务器检查之间的毫秒数,或不接受默认频率10秒的毫秒数。
appname :(string或None)创建此MongoClient实例的应用程序的名称。MongoDB 3.4及更高版本将在建立每个连接时在服务器日志中打印此值。它还记录在慢速查询日志和概要文件集合中。
driver :(配对或无)PyMongo上实现的驱动程序可以传递
DriverInfo
在建立连接时,将其名称、版本和平台添加到服务器日志中打印的消息中。event_listeners :事件侦听器的列表或元组。看到了吗
monitoring
有关详细信息。retryWrites :(boolean)在MongoDB 3.6+上发生网络错误后,是否将重试在此MongoClient中执行的受支持的写入操作。默认为
True
. 支持的写入操作包括:不支持的写入操作包括但不限于,
aggregate()
使用$out
管道运算符和任何具有未确认的写入问题(例如{w:0}))的操作。看到了吗https://github.com/mongodb/specifications/blob/master/source/retryable-writes/retryable-writes.rstretryReads :(boolean)在MongoDB 3.6+上发生网络错误后,是否重试在此MongoClient中执行的受支持的读取操作。默认为
True
. 支持的读取操作包括:find()
,find_one()
,aggregate()
没有$out
,distinct()
,count()
,estimated_document_count()
,count_documents()
,pymongo.collection.Collection.watch()
,list_indexes()
,pymongo.database.Database.watch()
,list_collections()
,pymongo.mongo_client.MongoClient.watch()
和list_databases()
.不支持的读取操作包括但不限于:
map_reduce()
,inline_map_reduce()
,command()
,以及对游标的任何getMore操作。启用可重试读取使应用程序对诸如网络故障、数据库升级和副本集故障转移等暂时性错误更具弹性。有关哪些错误触发重试的确切定义,请参阅 retryable reads specification .
socketKeepAlive :(布尔值) DEPRECATED 是否在已连接的套接字上发送定期保持活动的数据包。默认为
True
. 不建议禁用它,请参阅https://docs.mongodb.com/manual/faq/diagnostics/#does-tcp keepalive时间影响mongodb部署“,compressors: Comma separated list of compressors for wire protocol compression. The list is used to negotiate a compressor with the server. Currently supported options are "snappy", "zlib" and "zstd". Support for snappy requires the python-snappy 包裹。zlib支持需要Python标准库zlib模块。zstd需要 zstandard 包裹。默认情况下不使用压缩。服务器上还必须启用压缩支持。MongoDB 3.4+支持snappy压缩。mongodb3.6增加了对zlib的支持。mongodb4.2增加了对zstd的支持。
zlibCompressionLevel :(int)将zlib用作有线协议压缩程序时要使用的zlib压缩级别。支持的值为-1到9。-1告诉zlib库使用其默认压缩级别(通常为6)。0表示没有压缩。1是最佳速度。9是最好的压缩。默认为-1。
uuidRepresentation :在对的实例进行编码和解码时要使用的BSON表示形式
UUID
. 有效值为 pythonLegacy (违约), javaLegacy , csharpLegacy , standard 和 unspecified . 新应用程序应考虑将此设置为 standard 跨语言兼容性。看到了吗 处理UUID数据 有关详细信息。
写入问题选项:(仅在通过时设置。没有默认值。)w :(整数或字符串)如果这是副本集,则写入操作将被阻止,直到将它们复制到指定数量或标记的服务器集。 w=<int> 始终包含主副本集(例如,w=3表示写入主副本集并等待复制到 two 辅助设备)。通过w=0 禁用写入确认 以及所有其他写关注点选项。
wTimeoutMS :(整数)与 w . 指定一个以毫秒为单位的值,以控制等待写入传播完成的时间。如果复制没有在给定的时间范围内完成,则会引发超时异常。传递wTimeoutMS=0将导致 无限期等待的写入操作 .
journal 如果
True
阻止,直到写入操作已提交到日志。不能与一起使用 fsync . 在MongoDB 2.6之前,如果服务器在没有日志记录的情况下运行,则会忽略此选项。从MongoDB 2.6开始的写操作将失败,并出现异常,如果在服务器运行时没有日志记录时使用此选项。fsync 如果
True
服务器在没有日志记录的情况下运行,在服务器将所有数据文件同步到磁盘之前会阻塞。如果服务器正在运行日志记录,这与 j 选项,在写入操作提交到日志之前阻塞。不能与一起使用 j .
Replica set keyword arguments for connecting with a replica set - either directly or via a mongos:replicaSet :(字符串或无)要连接到的副本集的名称。驱动程序将验证它连接的所有服务器是否与此名称匹配。意味着指定的主机是种子列表,驱动程序应尝试查找集合的所有成员。默认为
None
.
读取首选项:readPreference :此客户端的副本集读取首选项。什么之中的一个
primary
,primaryPreferred
,secondary
,secondaryPreferred
或nearest
.默认为primary
.readPreferenceTags :将标记集指定为逗号分隔的冒号分隔键-值对列表。例如
dc:ny,rack:1
.默认为None
.maxStalenessSeconds :(整数)复制过程中,在不再选择副本集进行操作之前,辅助副本集可以落后于主副本集的最大估计时间长度。默认为
-1
,表示没有最大值。如果设置了maxStalenessSeconds,则它必须是大于或等于90秒的正整数。
参见
认证:username 一个字符串。
password 一个字符串。
虽然用户名和密码在MongoDB URI中必须是百分比转义,但是当作为参数传递时,它们不能是百分比转义。在本例中,空格和斜杠特殊字符都按原样传递:
MongoClient(username="user name", password="pass/word")
authSource :要在其上进行身份验证的数据库。默认为URI中指定的数据库(如果提供的话)或“admin”。
authMechanism 见
MECHANISMS
供选择。如果没有指定机制,PyMongo在连接到MONGODB 3.0之前的版本时会自动使用MONGODB-CR,在连接到MONGODB 3.0到3.6时自动使用SCRAM-SHA-1,在连接到MONGODB 4.0+时协商要使用的机制(SCRAM-SHA-1或SCRAM-SHA-256)。authMechanismProperties :用于指定特定于身份验证机制的选项。要为GSSAPI身份验证指定服务名称,请通过authMechanismProperties='service'name:<service name>'。为MONGODB-AWS身份验证过程指定会话令牌
authMechanismProperties='AWS_SESSION_TOKEN:<session token>'
.
参见
TLS/SSL configuration:tls :(布尔)如果
True
,使用传输层安全性创建到服务器的连接。默认为False
.tlsInsecure :(布尔)指定是否应尽可能放宽TLS约束。设置
tlsInsecure=True
暗示tlsAllowInvalidCertificates=True
和tlsAllowInvalidHostnames=True
.默认为False
. 在将此设置为之前,请仔细考虑True
因为它大大降低了TLS的安全性。tlsAllowInvalidCertificates :(布尔)如果
True
,继续TLS握手,而不管证书验证过程的结果如何。如果这是False
,并且未为提供值tlsCAFile
,PyMongo将尝试加载系统提供的CA证书。如果使用的python版本不支持加载系统CA证书,则tlsCAFile
参数必须指向CA证书的文件。tlsAllowInvalidCertificates=False
暗示tls=True
.默认为False
. 在将此设置为之前,请仔细考虑True
因为这可能会使您的应用程序容易受到中间人攻击。tlsAllowInvalidHostnames :(布尔)如果
True
,禁用TLS主机名验证。tlsAllowInvalidHostnames=False
暗示tls=True
.默认为False
. 在将此设置为之前,请仔细考虑True
因为这可能会使您的应用程序容易受到中间人攻击。tlsCAFile :包含一个或多个“证书颁发机构”证书的文件,这些证书用于验证从连接的另一端传递的证书。暗示
tls=True
.默认为None
.tlsCertificateKeyFile :包含客户端证书和私钥的文件。如果您想使用私有密钥和证书,那么就可以使用私有密钥
ssl_certfile
和ssl_keyfile
而不是选择。暗示tls=True
.默认为None
.tlsCRLFile :包含PEM或DER格式的证书吊销列表的文件。仅Python2.7.9+(Pypy2.5.1+)支持。暗示
tls=True
.默认为None
.tlsCertificateKeyFilePassword :在中解密私钥的密码或密码短语
tlsCertificateKeyFile
或ssl_keyfile
. 只有在私钥加密时才需要。仅Python2.7.9+(Pypy2.5.1+)和3.3+支持。默认为None
.tlsDisableOCSPEndpointCheck :(布尔)如果
True
,通过服务器证书上指定的OCSP响应程序禁用证书吊销状态检查。默认为False
.ssl :(布尔)别名
tls
.ssl_certfile :用于标识针对mongod的本地连接的证书文件。暗示
tls=True
.默认为None
.ssl_keyfile :用于标识针对mongod的本地连接的私有密钥文件。如果密钥文件包含在
tlsCertificateKeyFile
. 暗示tls=True
.默认为None
.
阅读关注点选项:(如果未显式设置,将使用服务器默认值)readConcernLevel :(字符串)读取关注级别指定读取操作的隔离级别。例如,使用读取关注级别的读取操作
majority
将只返回已写入大多数节点的数据。如果未指定级别,则将使用服务器默认值。
客户端加密选项:(如果未显式设置,则不会启用客户端加密。)auto_encryption_opts 答:
AutoEncryptionOpts
它将此客户端配置为自动加密集合命令并自动解密结果。看到了吗 自动客户端字段级加密 举个例子。
在 3.11 版更改: 添加了以下关键字参数和URI选项:
tlsDisableOCSPEndpointCheck
directConnection
在 3.9 版更改: 增加了
retryReads
关键字参数和URI选项。添加了tlsInsecure
关键字参数和URI选项。以下关键字参数和URI选项已弃用:wTimeout
反对赞成wTimeoutMS
.j
反对赞成journal
.ssl_cert_reqs
反对赞成tlsAllowInvalidCertificates
.ssl_match_hostname
反对赞成tlsAllowInvalidHostnames
.ssl_ca_certs
反对赞成tlsCAFile
.ssl_certfile
反对赞成tlsCertificateKeyFile
.ssl_crlfile
反对赞成tlsCRLFile
.ssl_pem_passphrase
反对赞成tlsCertificateKeyFilePassword
.
在 3.9 版更改:
retryWrites
现在默认为True
.在 3.8 版更改: 增加了
server_selector
关键字参数。添加了type_registry
关键字参数。在 3.7 版更改: 增加了
driver
关键字参数。在 3.6 版更改: 增加了对mongodb+srv://URIs的支持。添加了
retryWrites
关键字参数和URI选项。在 3.5 版更改: 添加
username
和password
选项。记录authSource
,authMechanism
和authMechanismProperties
选项。已弃用socketKeepAlive
关键字参数和URI选项。socketKeepAlive
现在默认为True
.在 3.0 版更改:
MongoClient
现在是独立服务器、mongos或副本集的唯一客户机类。它包含了被拆分为MongoReplicaSetClient
:它可以连接到一个副本集,发现它的所有成员,并监视该副本集的降级、选举和重新配置。这个
MongoClient
构造函数在连接到一个或多个服务器时不再阻塞,并且不再引发ConnectionFailure
如果它们不可用,或者ConfigurationError
如果用户的凭据错误。相反,构造函数立即返回并在后台线程上启动连接进程。因此
alive
方法已被删除,因为它不再提供有意义的信息;即使客户端断开连接,它也可能及时发现服务器以完成下一个操作。在PyMongo 2.x中,
MongoClient
接受了独立MongoDB服务器列表,并使用了它可以连接到的第一个服务器:MongoClient(['host1.com:27017', 'host2.com:27017'])
不再支持多个standalone列表;如果列出多个服务器,它们必须是同一副本集的成员,或者是同一个分片集群中的mongose。
mongose列表的行为从“高可用性”更改为“负载平衡”。以前,客户端连接到列表中延迟最低的mongos,并使用它,直到出现网络错误提示它重新评估所有mongos的延迟并重新连接到其中一个。在PyMongo3中,客户端对所有Mongo3的网络延迟进行连续监控,并将操作平均分配给延迟最小的Mongo3。看到了吗 mongos负载平衡 更多信息。
这个
connect
选项已添加。这个
start_request
,in_request
和end_request
方法以及auto_start_request
选择权。这个
copy_database
方法被删除,请参见 copy_database examples 以备选择。这个
MongoClient.disconnect()
方法已删除;它是close()
.MongoClient
不再返回Database
对于带前导下划线的属性名。您必须改用dict样式的查找::client['__my_database__']
不是:
client.__my_database__
-
close
()¶ 清理客户端资源并断开与MongoDB的连接。
在MongoDB>=3.6上,通过发送一个或多个endSessions命令来结束此客户端创建的所有服务器会话。
关闭连接池中的所有套接字并停止监视器线程。如果再次使用此实例,它将自动重新打开并重新启动线程,除非启用了自动加密。已启用自动加密的客户端在关闭后无法再次使用;任何尝试都将引发
InvalidOperation
.在 3.6 版更改: 结束此客户端创建的所有服务器会话。
-
c[db_name] || c.db_name
得到 db_name
Database
在MongoReplicaSetClient
c .加薪
InvalidName
如果使用了无效的数据库名称。
-
primary
¶ 副本集的当前主服务器的(主机、端口)。
返回
None
如果此客户机未连接到副本集,则没有主客户机,或者创建此客户机时没有 replicaSet 选择权。3.0 新版功能: MongoClient在3.0版中合并MongoReplicaSetClient的功能时获得了此属性。
-
secondaries
¶ 此客户端已知的辅助成员。
(主机、端口)对的序列。空如果此客户机未连接到副本集,则没有可见的辅助设备,或者此客户机创建时没有 replicaSet 选择权。
3.0 新版功能: MongoClient在3.0版中合并MongoReplicaSetClient的功能时获得了此属性。
-
arbiters
¶ 副本集中的仲裁者。
(主机、端口)对的序列。空如果此客户端未连接到副本集,则不存在仲裁器,或者创建此客户端时没有 replicaSet 选择权。
-
max_pool_size
¶ 到每个连接的服务器的最大允许并发连接数。对服务器的请求将阻止 maxPoolSize 到请求服务器的未完成连接。默认为100。不能为0。
当服务器的池到达 max_pool_size ,对等待将套接字返回池的服务器块的操作。如果
waitQueueTimeoutMS
设置时,阻止的操作将引发ConnectionFailure
暂停之后。默认情况下waitQueueTimeoutMS
未设置。
-
max_bson_size
¶ 连接的服务器接受的最大BSON对象(字节)。
如果客户端未连接,则在建立连接之前,这将被阻止;如果没有可用的服务器,则会引发ServerSelectionTimeoutError。
-
max_message_size
¶ 连接的服务器接收的最大消息(字节)。
如果客户端未连接,则在建立连接之前,这将被阻止;如果没有可用的服务器,则会引发ServerSelectionTimeoutError。
-
local_threshold_ms
¶ 此实例的本地阈值。
-
codec_options
¶ 只读访问
CodecOptions
这个例子。
-
read_preference
¶ 对此实例的“读取”首选项的只读访问。
在 3.0 版更改: 这个
read_preference
属性现在是只读的。
-
write_concern
¶ 只读访问
WriteConcern
这个例子。在 3.0 版更改: 这个
write_concern
属性现在是只读的。
-
database_names
(session=None)¶ DEPRECATED :获取所连接服务器上所有数据库的名称列表。
- 参数
session (可选):a
ClientSession
.
在 3.7 版更改: 不赞成的使用
list_database_names()
相反。在 3.6 版更改: 补充
session
参数。
-
drop_database
(name_or_database, session=None)¶ 删除数据库。
Raises
TypeError
if name_or_database is not an instance ofbasestring
(str
in python 3) orDatabase
.- 参数
name_or_database :要删除的数据库的名称,或
Database
表示要删除的数据库的实例session (可选):a
ClientSession
.
在 3.6 版更改: 补充
session
参数。注解
这个
write_concern
当使用MongoDB>=3.4时,此客户端的自动应用于此操作。在 3.4 版更改: 当连接到MongoDB>=3.4时,将此客户端的写入问题自动应用于此操作。
-
get_database
(name=None, codec_options=None, read_preference=None, write_concern=None, read_concern=None)¶ 得到一个
Database
使用给定的名称和选项。对于创建
Database
使用不同的编解码器选项、读取首选项和/或写入关注点MongoClient
.>>> client.read_preference Primary() >>> db1 = client.test >>> db1.read_preference Primary() >>> from pymongo import ReadPreference >>> db2 = client.get_database( ... 'test', read_preference=ReadPreference.SECONDARY) >>> db2.read_preference Secondary(tag_sets=None)
- 参数
name (可选):数据库的名称-字符串。如果
None
(默认)返回MongoDB连接URI中命名的数据库。codec_options (可选):的实例
CodecOptions
.如果None
(默认值)codec_options
其中MongoClient
使用。read_preference (可选):要使用的读取首选项。如果
None
(默认值)read_preference
其中MongoClient
使用。见read_preferences
供选择。write_concern (可选):的实例
WriteConcern
.如果None
(默认值)write_concern
其中MongoClient
使用。read_concern (可选):的实例
ReadConcern
.如果None
(默认值)read_concern
其中MongoClient
使用。
在 3.5 版更改: 这个 name 参数现在是可选的,默认为MongoDB连接URI中命名的数据库。
-
close_cursor
(cursor_id, address=None)¶ 已弃用-尽快用给定的id发送kill cursors消息。
加薪
TypeError
如果 cursor_id 不是的实例(int, long)
. 关闭光标实际上意味着什么取决于这个客户机的游标管理器。此方法可以从
Cursor
在垃圾收集过程中使用析构函数,因此获取锁或进行网络I/O是不安全的。相反,我们计划在后台线程上很快关闭光标。- 参数
cursor_id :要关闭的光标的id
address (可选):(主机,端口)光标服务器的对。如果没有提供,客户机将尝试关闭主服务器、独立服务器或mongos服务器上的光标。
在 3.7 版更改: 已弃用。
在 3.0 版更改: 补充
address
参数。
-
kill_cursors
(cursor_ids, address=None)¶ 已弃用-使用给定的ID尽快发送kill cursors消息。
加薪
TypeError
如果 cursor_ids 不是的实例list
.- 参数
cursor_ids :要终止的游标ID列表
address (可选):(主机,端口)光标服务器的对。如果没有提供,客户机将尝试关闭主服务器、独立服务器或mongos服务器上的光标。
在 3.3 版更改: 已弃用。
在 3.0 版更改: 现在接受一个 address 争论。安排在后台线程上关闭游标,而不是立即发送消息。
-
set_cursor_manager
(manager_class)¶ 已弃用-设置此客户端的游标管理器。
加薪
TypeError
如果 manager_class 不是的子类CursorManager
. 游标管理器处理关闭的游标。不同的管理者可以在何时实际终止已关闭的游标方面实施不同的策略。- 参数
manager_class :要使用的光标管理器
在 3.3 版更改: 反对,这次是真的。
在 3.0 版更改: 不顾一切。
-
get_default_database
(default=None, codec_options=None, read_preference=None, write_concern=None, read_concern=None)¶ 获取MongoDB连接URI中名为的数据库。
>>> uri = 'mongodb://host/my_database' >>> client = MongoClient(uri) >>> db = client.get_default_database() >>> assert db.name == 'my_database' >>> db = client.get_database() >>> assert db.name == 'my_database'
在脚本中非常有用,在这些脚本中,只根据配置文件中的URI选择要使用的数据库。
- 参数
default (可选):在URI中未提供数据库名称时要使用的数据库名称。
codec_options (可选):的实例
CodecOptions
.如果None
(默认值)codec_options
其中MongoClient
使用。read_preference (可选):要使用的读取首选项。如果
None
(默认值)read_preference
其中MongoClient
使用。见read_preferences
供选择。write_concern (可选):的实例
WriteConcern
.如果None
(默认值)write_concern
其中MongoClient
使用。read_concern (可选):的实例
ReadConcern
.如果None
(默认值)read_concern
其中MongoClient
使用。
在 3.8 版更改: 不顾一切。添加了
default
,codec_options
,read_preference
,write_concern
和read_concern
参数。在 3.5 版更改: 弃用,使用
get_database()
相反。