如何使用mongoengin连接到mongodbcluster

2024-06-13 11:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用复制和分片构建mongodb集群。我设置了基于x509的身份验证。 我通过mongo连接到数据库(mongos),如下所示:

mongo admin --ssl --sslCAFile mongoCA.pem \
--sslPEMKeyFile client.pem -u user -p password --host my.host.com --port 27017

如何使用mongoengine连接到集群?在

我没有找到方法register\u connection的连接选项说明:

^{pr2}$

例如,PyMongo提供了必要的选项http://api.mongodb.com/python/current/examples/authentication.html#mongodb-x509,但我需要在现有代码中使用mongoengine。在


Tags: com身份验证数据库hostssladminmongomongodb
3条回答

MongoEngine基于pymongo。一个mongo_网址,比如'mongodb://user:passwd@ip:port,ip:port/db'在MongoEngine和Pymongo中工作正常。在

代码是这样的:

from mongoengine import connect
from mongoengine import Document
from mongoengine import StringField

connect('mpc', host='mongodb://mpc:mpc@mongo-1:28010,mongo-2:28010,mongo-3:28010/mpc')

class User(Document):
    title = StringField(required=True, max_length=200)

print User.objects.count()

有关详细信息,http://www.jianshu.com/p/a0a23443146e

我看了看dokstring“register\u connection”,我发现:

:param kwargs: allow ad-hoc parameters to be passed into the pymongo driver

我用这个作为:

^{pr2}$

使用mongoengine连接到MongoDB Atlas集群时,可以使用以下简化函数:

# Connect to, return database
def db_connect(database):
    db_uri = "mongodb+srv://<username>:<password>@<cluster>.net/?retryWrites=true&w=majority"
    db = connect(database, host=db_uri)
    return db

其中,数据库变量是带有数据库名称的字符串。在

相关问题 更多 >