Python mongodb需求中的StringField

Python mongodb需求中的StringField,python,mongodb,mongoengine,documents,Python,Mongodb,Mongoengine,Documents,我想知道是否可以在用户文档的设置中添加一个要求,以检查特定字符串。我的想法是,当创建一个带有电子邮件地址的用户文档时,我希望确保该电子邮件来自一所大学,因此应该以“.edu”结尾 例子: “约翰。doe@college.edu“是可以接受的,但是”约翰。doe@gmail.com”“不是吗 这是我的密码: class User(db.Document, UserMixin): name = db.StringField(max_length=255, unique=True) e

我想知道是否可以在用户文档的设置中添加一个要求,以检查特定字符串。我的想法是,当创建一个带有电子邮件地址的用户文档时,我希望确保该电子邮件来自一所大学,因此应该以“.edu”结尾 例子: “约翰。doe@college.edu“是可以接受的,但是”约翰。doe@gmail.com”“不是吗

这是我的密码:

class User(db.Document, UserMixin):
    name = db.StringField(max_length=255, unique=True)
    email = db.StringField(max_length=255, unique=True)
    phone = db.StringField(max_length=255, unique=True)
    password = db.StringField(max_length=255)
    active = db.BooleanField(default=True)
    confirmed_at = db.DateTimeField()
    roles = db.ListField(db.ReferenceField(Role), default=[])
您可以定义一个可选选项:

email = db.StringField(max_length=255, unique=True, regex=r'.*?boston\.edu$')
此外,在这种情况下,为什么不使用特定的
电子邮件字段

email = db.EmailField(max_length=255, unique=True, regex=r'.*?boston\.edu$')

StringField对象没有该属性我认为这使得整个字段必须相等。edu但是我只想包含该字段。edu抱歉,我对正则表达式非常不熟悉,但是如何修改代码使其需要“boston.edu”谢谢你所做的一切,但还有一个问题:如果我现在只想要两所大学,比如boston.edu和mass.edu呢?有没有一种方法可以表达or语句?@LouisB sure:
*?(波士顿马萨诸塞州)\.edu$