我有一个模型如下:
class Primary(db.Document):
primaryName = db.StringField(required=True, max_length=20)
secondaries = db.ListField(db.EmbeddedDocumentField(Secondary))
class Secondary(db.EmbeddedDocument):
secondaryName = db.StringField(required=True, max_length=20)
secondarySurname = db.StringField(max_length=20)
我想获取具有特定名称的Secondary对象,或者如果它不存在则创建它。到目前为止,我还没有找到比这更好的方法:
# get the object if it exists already. Create otherwise
targetSecondary = None
for curSecondary in primary.secondaries:
if curSecondary.secondaryName == 'targetName':
targetSecondary = curSecondary
break
if not targetSecondary:
targetSecondary = Secondary(secondaryName='targetName')
primary.secondaries.append(targetSecondary)
targetSecondary.secondarySurname = 'blahblah'
我想知道是否有更好的方法(我几乎可以肯定有),如果它只是我还不知道的 MongoEngine 的一些现成方法会很好。预先感谢您的任何帮助。