繁体   English   中英

使用 mongoengine 连接到 MongoDB atlas 集群

[英]Connect to MongoDB atlas cluster with mongoengine

我有一个烧瓶应用程序,我使用 mongoengine 创建数据库。 但是现在,我需要连接 MongoDB Atlas 的集群,但我只能找到如何使用 Pymongo:

client = pymongo.MongoClient("mongodb+srv://<username>:<password>@<database-name>.mongodb.net/test?retryWrites=true&w=majority")
db = client.test

我只是想要一些帮助来连接这个新数据库。

如果您使用flask-mongoengine ,您可以使用以下模式连接给定的 URI:

from flask import Flask
from flask.ext.mongoengine import MongoEngine

app = Flask(__name__)

# This would usually come from your config file
DB_URI = "mongodb+srv://<username>:<password>@<database-name>.mongodb.net/test?retryWrites=true&w=majority"

app.config["MONGODB_HOST"] = DB_URI

db = MongoEngine(app)

if __name__ == '__main__':
    app.run()

如果您使用的是普通的mongoengine ,您只需像这样建立连接:

from mongoengine import connect

DB_URI = "mongodb+srv://<username>:<password>@<database-name>.mongodb.net/test?retryWrites=true&w=majority"

connect(host=DB_URI)

这实际上是flask-mongoengine在幕后flask-mongoengine

我认为您在<database_name>的位置放置 URI 的方式是错误的,您应该将集群的名称改为如下所示:

app.config['MONG_DBNAME'] = '<DB_name>'
app.config['MONGO_URI'] = 'mongodb+srv://<name>:<password>@<cluster_name>.net/<DB_name>?retryWrites=true'

当使用mongoengine连接到MongoDB Atlas集群时,无论使用flask-mongoengine都可以使用以下功能:

# 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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM