Сбой подключения Mongoengine: Вы не определили соединение по умолчанию

#python #fastapi #mongoengine

Вопрос:

Запустите проект на python, используя fastapi с помощью mongoengine. Вчера он работал нормально, но сегодня при запуске любого метода, имеющего подключение к базе данных, возникает ошибка сбоя подключения (mongoengine.connection.ConnectionFailure: Вы не определили соединение по умолчанию ).

Моя связь:

 from mongoengine import connect  connect(db="mydb", host='localhost', port=27017, alias='default')  

Мои модели:

 from mongoengine.document import Document from mongoengine.fields import StringField, BooleanField, ListField, ReferenceField from mongoengine import PULL   class Permissao(Document):  permissao = StringField()   class Grupo(Document):  grupo = StringField()    permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL))   class Usuario(Document):  nome_usuario = StringField()  ativo = BooleanField()  senha = StringField()    grupos = ListField(ReferenceField('Grupo', reverse_delete_rule=PULL))  permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL))   

Ответ №1:

Это сработало, я переключил соединение на модели и поставил мета-поле, проверьте его ниже:

 from mongoengine.document import Document from mongoengine.fields import StringField, BooleanField, ListField, ReferenceField from mongoengine import PULL from mongoengine import connect  connect(db="mydb", host="localhost", port=27017, alias="mydb-alias")  class Permissao(Document):  permissao = StringField()   meta = {"db_alias" : "mydb-alias" , "collection" : "permissao"}   class Grupo(Document):  grupo = StringField()    permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL))    meta = {"db_alias" : "mydb-alias" , "collection" : "grupo"}   class Usuario(Document):  nome_usuario = StringField()  ativo = BooleanField()  senha = StringField()    grupos = ListField(ReferenceField('Grupo', reverse_delete_rule=PULL))  permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL))   meta = {"db_alias" : "mydb-alias" , "collection" : "usuario"}