使用 mongoengine 连接到 MongoDB atlas 集群
Connect to MongoDB atlas cluster with mongoengine
我有一个 Flask 应用程序,我使用 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
在幕后调用的内容
我认为您放置 URI 的方式在 <database_name>
的位置上是错误的,您应该改为放置集群的名称,例如:
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
其中数据库变量是带有数据库名称的字符串。
我有一个 Flask 应用程序,我使用 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
我认为您放置 URI 的方式在 <database_name>
的位置上是错误的,您应该改为放置集群的名称,例如:
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
其中数据库变量是带有数据库名称的字符串。