mongoengine.connect - 如何连接到另一个非默认端口?
mongoengine.connect - How to connect to another port that is not default?
我正在做一个 python 程序,我想使用 mongoengine 连接 MongoDB。
我使用的是 Macbook pro 2016。在终端上,我点击“mongod --port 27018”,一切正常。此外,Robo 3T 显示连接有效。问题是当 运行 "python3 User.py" 我得到错误 :
MongoEngineConnectionError:您尚未定义默认连接。
mongoengine.connect(db="Telegram_User_DataBase", alias="telegramUDB", port=27018)
class User(mongoengine.Document):
name = mongoengine.StringField()
last_name = mongoengine.StringField()
username = mongoengine.StringField()
telegramID = mongoengine.StringField()
is_bot = mongoengine.BooleanField()
def newUser(self, name, last_name, username, telegramID, is_bot):
"""Cria um novo usuario e o salva no banco de dados Telegram_User_DataBase"""
self.name = name
self.last_name = last_name
self.username = username
self.telegramID = telegramID
self.is_bot = is_bot
self.save() #error goes right here
#testing
user1 = User()
user1.newUser("erick", "giff", "egf", "1234", False)
我原以为该程序会在端口 27018 上创建我的数据库,但这并没有发生。
我想也许我在第一行做错了什么,mongoengine.connect(...
如果您有多个数据库,您需要使用 meta
class 属性将您的模型附加到数据库,否则它们会默认附加到 alias='default'
例如:
connect(db='test') # identified by alias `default`
connect(..., alias='telegramUDB')
class User(Document):
meta = {'db-alias': 'telegramUDB'}
name = StringField()
class Person(Document): # implicitly attached to alias=default
name = StringField()
如果只有1个数据库,调用connect()时最好不要设置alias
,这样就不用处理bd-alias
查看此页面了解更多信息:http://docs.mongoengine.org/guide/connecting.html#multiple-databases
我正在做一个 python 程序,我想使用 mongoengine 连接 MongoDB。
我使用的是 Macbook pro 2016。在终端上,我点击“mongod --port 27018”,一切正常。此外,Robo 3T 显示连接有效。问题是当 运行 "python3 User.py" 我得到错误 :
MongoEngineConnectionError:您尚未定义默认连接。
mongoengine.connect(db="Telegram_User_DataBase", alias="telegramUDB", port=27018)
class User(mongoengine.Document):
name = mongoengine.StringField()
last_name = mongoengine.StringField()
username = mongoengine.StringField()
telegramID = mongoengine.StringField()
is_bot = mongoengine.BooleanField()
def newUser(self, name, last_name, username, telegramID, is_bot):
"""Cria um novo usuario e o salva no banco de dados Telegram_User_DataBase"""
self.name = name
self.last_name = last_name
self.username = username
self.telegramID = telegramID
self.is_bot = is_bot
self.save() #error goes right here
#testing
user1 = User()
user1.newUser("erick", "giff", "egf", "1234", False)
我原以为该程序会在端口 27018 上创建我的数据库,但这并没有发生。 我想也许我在第一行做错了什么,mongoengine.connect(...
如果您有多个数据库,您需要使用 meta
class 属性将您的模型附加到数据库,否则它们会默认附加到 alias='default'
例如:
connect(db='test') # identified by alias `default`
connect(..., alias='telegramUDB')
class User(Document):
meta = {'db-alias': 'telegramUDB'}
name = StringField()
class Person(Document): # implicitly attached to alias=default
name = StringField()
如果只有1个数据库,调用connect()时最好不要设置alias
,这样就不用处理bd-alias
查看此页面了解更多信息:http://docs.mongoengine.org/guide/connecting.html#multiple-databases