gpt4 book ai didi

python - 设计 Django MongoDB 引擎外键列表

转载 作者:行者123 更新时间:2023-12-01 06:02:21 26 4
gpt4 key购买 nike

当我们使用Django MongoDB Engine实现ManyToManyField时,我们可以这样设计:

# Model and its field
class Group(models.Model):
members = ListField(models.ForeignKey(User))

# Query
Group.objects.raw_query({'members': ObjectId(request.user.id)})

上面的代码会将“members”字段存储为 mongodb 中的 Mongodb ID 列表。就像“members”:[ObjectId(“4e46434741b6994c70000000”)]

我们还可以将 MongoDB id 存储为字符串:

# Model and its field
class Group(models.Model):
members = ListField(models.CharField(max_length=24))

# Query
Group.objects.filter(members=request.user.id)

上面的代码会将“members”字段作为字符串列表存储在 mongodb 中。喜欢“成员”:[“4e46434741b6994c70000000”]

我的问题是,这些结构中哪一种对于 mongodb 查询效率更高?

最佳答案

外键挑衅。您指向的模型将使用 objectid,因为它是 _id,因此通过将关系存储为字符串,您需要将列表中的每个项目从字符串转换为 objectId。

关于python - 设计 Django MongoDB 引擎外键列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9695035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com