使用 Django 使用 MongoDB 时如何在对象内创建数组?
Posted
技术标签:
【中文标题】使用 Django 使用 MongoDB 时如何在对象内创建数组?【英文标题】:How to create an array inside an object when working with MongoDB using Django? 【发布时间】:2022-01-21 12:26:45 【问题描述】:我正在做一个项目,我希望我的用户模型具有这种结构。 structure
"_id":
"$oid":"61bf3e026ffc7993a082773e"
,
"email":"user@domain.com",
"role":"student",
"type":"t1",
"fname":"ABC",
"from":
"org-user":[
"83bf3e026ffc7993a0827731",
"78bf3e026ffc7993a0827731"
]
在此模型中,“from”是具有一个键“org-user”的对象。这个“org-user”是一个 mongodb 对象 ID 的数组。
这是我目前写的代码。
from djongo import models
class User(models.Model):
class Meta:
db_table = "users"
_id = models.ObjectIdField()
email = models.EmailField(
max_length=255,
unique=True,
)
role = models.CharField(max_length=255, default="student")
type = models.CharField(max_length=255, default="internal")
fname = models.CharField(max_length=255)
知道如何在 Django 中实现这一点吗?
【问题讨论】:
【参考方案1】:看看 djongos models.ArrayField
,类似
class User(models.Model):
class Meta:
db_table = "users"
_id = models.ObjectIdField()
email = models.EmailField(
max_length=255,
unique=True,
)
role = models.CharField(max_length=255, default="student")
type = models.CharField(max_length=255, default="internal")
fname = models.CharField(max_length=255)
# something like that
org_user = models.ArrayField(
model_container=models.CharField(max_length=100)
)
在此处了解更多信息MongoDB ArrayField。
您也可以尝试python manage.py inspect_db User > models_file.py
,但我不知道 djongo 可以在这里做什么,从现有数据库自动生成模型。
【讨论】:
以上是关于使用 Django 使用 MongoDB 时如何在对象内创建数组?的主要内容,如果未能解决你的问题,请参考以下文章