1

Django MongoDB エンジンを使用して 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 IDリストとしてmongodbに保存します。お気に入り"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)

上記のものは、フィールド「メンバー」を文字列リストとしてmongodbに保存します。お気に入り "members" : [ "4e46434741b6994c70000000" ]

私の質問は、これらの構造のどれがmongodbクエリにとってより効率的ですか?

4

1 に答える 1

2

反抗的に外部キー。ポイントしているモデルは、_idとしてobjectidを使用するため、リレーションを文字列として格納することにより、リスト内の各アイテムの文字列からobjectIdに変換する必要があります。

于 2012-03-14T21:36:12.263 に答える