当我们使用 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)})
上面的将字段“成员”存储为 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 中。喜欢
"members" : [ "4e46434741b6994c70000000" ]
我的问题是,这些结构中的哪一种对 mongodb 查询更有效?