mongoengine.connect如何连接到另一个非默认端口?

2024-06-25 23:36:18 发布

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

我正在做一个python程序,我想用mongoengine连接MongoDB。

我正在使用Macbook pro 2016。在终端上,我点击了“mongod--27018端口”,一切正常。此外,robo3t显示连接工作正常。问题是当一只“Python3”奔跑时用户.py“我得到了一个错误:

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(... 在


Tags: 端口nameself程序isbotconnectusername
1条回答
网友
1楼 · 发布于 2024-06-25 23:36:18

如果您有多个数据库,则需要使用metaclass属性将模型附加到数据库,否则默认情况下它们将附加到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

相关问题 更多 >