Ich brauche Hilfe beim Nachdenken über Datenmodellierung (ich benutze Python und Mongoengine). Ich habe ein Objekt, auf das ich verschiedene Klassen von eingebetteten Dokumenten anwenden möchte, abhängig von einem anderen Attribut, das das Objekt hat.Bedingtes eingebettetes Dokument für mongodb Objekte
class RunningSettings(EmbeddedDocument):
max_distance = DecimalField()
speed = DecimalField()
...
class WeightLiftingSettings(EmbeddedDocument):
max_weight = DecimalField()
reps = IntField()
...
class Workout(Document):
name = StringField()
description = StringField()
date_created = DateTimeField(default=datetime.utcnow())
kind = StringField()
# pseudo starts
<if self.kind == "running">
settings = EmbeddedDocumentField('RunningSettings')
<if self.kind == "weight_lifting">
settings = EmbeddedDocumentField('WeightLiftingSettings')
Mein Problem ist, dass jedes Mal, wenn ich das Objekt .save()
, ich bin nicht sicher, wie das funktionieren kann. Vielleicht ist es zu seltsam oder zu kompliziert, um damit anzufangen? Ich bin offen für Vorschläge.