我用flask-restplus
和mongoengine
制作了一个API系统
我也是mongodb和mongoengine的新手。
我知道mongodb中没有外键。
但是在阅读mongoengine的文档之后,我发现了一些类似的字段。
ReferenceField是具有RDB之类关系的字段。
所以我想知道,如果我将某个字段设置为ReferenceField
,它是否像RDB的外键一样工作?
请看下面关于数据库模式的代码。
class User(Document):
no = SequenceField()
userid = StringField(unique=True, required=True)
userpw = StringField(required=True)
class Article(Document):
no = SequenceField()
subject = StringField(required=True)
content = StringField(required=True)
userid = ReferenceField(User, required=True, dbref=True)
在john
模式中删除用户ID User
时,必须删除john的每篇文章。
每个Article
的用户ID也必须已经包含在User
模式中。
我知道如果使用RDB外键和层叠选项很容易。
但是我想知道,如果我使用mongoengine的ReferenceField
,有可能吗?
或者,ReferenceField
的确切工作是什么?
谢谢。