python - 在 mongoengine 中定义 Many2Many、Many2One 的正确方法是什么

标签 python mongodb flask-mongoengine

我正在为我的新项目创建一个数据模型,我必须使用 Flask-mongoengine 来使用 Many2Many、Many2One、One2Many 引用。有人可以描述如何使用 mongoengine 定义 Many2Many 和其他引用字段吗?

最佳答案

以下是最常见的方法:

1) 使用简单的 ReferenceField 进行一对多

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)带有列表的多对多(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()

请注意,@property 是可选的,只是为了方便

关于python - 在 mongoengine 中定义 Many2Many、Many2One 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56660787/

相关文章:

Python 嵌套循环唯一对

python - 如何使用 Pandas 数据框的余额列计算银行对帐单借方/贷方列?

mongodb - 在 symfony2 + doctrine 中更改运行时的 MongoDB 集合

node.js - MongoDb + Mongoose QueryStream - 以下文档更改

python - 使用 Flask 和 MongoEngine 跟踪 Tumblelog 应用程序时出错

python - Colorbar 作为 Gridspec 中的子图(python): change size

python - 在Python中使用ElementTree从xml中获取数据

javascript - Mongoose 无法从 MongoDB 数据库获取数据

python - 在 MongoAlchemy 中运行 Author.save() 时出错

flask - MongoClient在派生之前打开。仅创建MongoClient flask