2012-05-09 73 views
4

我是新来的MongoDB,并试图为一组python对象设计一个简单的模式。我在处理多态性概念方面遇到困难。Mongodb多态对象模式设计

下面是一些伪代码。你将如何在MongoDB模式中表示这种继承层次结构:

class A: 
    content = 'video' or 'image' or 'music' 
    data = contentData # where content may be video or image or music depending on content. 

class videoData: 
    length = * 
    director = * 
    actors = *  

class imageData: 
    dimensions = * 

class musicData: 
    genre = * 

我面对的问题是A.data的模式依赖于A.content。 A如何在MongoDB模式中表示?

回答

3

你的文件看起来是这样的:

{ _type: "video", 
    data: { 
    length: 120, 
    director: "Smith", 
    actors = ["Jones", "Lee"] 
    } 
} 

所以,基本上,“数据”指向与文档的类型指定字段嵌入文档。