在mongoengin,定义Many2Many,Many2One的正确方法是什么

2024-05-14 12:01:35 发布

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

我正在为我的新项目创建一个数据模型,在这个模型中,我必须使用flask mongoengine使用很多,很多,一个,很多引用。有人能描述一下如何使用mongoengine定义Many2Many和其他参考字段吗?你知道吗


Tags: 项目模型flask定义数据模型mongoenginemany2many参考字
1条回答
网友
1楼 · 发布于 2024-05-14 12:01:35

以下是最常见的方法:

1)具有简单引用字段的1对多

class Client(Document):
    name = StringField()

    @property
    def account(self):
          return Account.objects(client=self).get()  

class Account(Document):
    client = ReferenceField(Client)

bob = Client(name='Bob').save()
acc1 = Account(client=bob).save()
acc2 = Account(client=bob).save()

2)带列表的多-2-Many(ReferenceField)

class Client(Document):
    name = StringField()

    @property
    def accounts(self):
          return Account.objects(client=self)  

class M2MAccount(Document):
    clients = ListField(ReferenceField(Client))

bob = Client(name='Bob').save()
john = Client(name='John').save()
m2m_acc = M2MAccount(clients=[bob, john]).save()

注意,@属性是可选的,只是为了方便起见

相关问题 更多 >

    热门问题