[英]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.