2013-06-14 2 views
0

Если у меня есть родитель схемы, как:смешанные схемы в одном массиве поддокументе

{ 
    doc_name:String, 
    doc_collection:[?????] 
} 

и subdoc детей:

child1 = 
{ 
child_type: String, 
property1: String, 
property2: Number 
} 

child2 = 
{ 
    child_type: string, 
    different_property1: Number, 
    much_different_property2: String 
} 

могут parentschema.doc_collection удержания поддокументы обоих ребенка1 и Child2 схем?

Или я должен сделать:

{ 
    doc_name:String, 
    doc_collection: 
    { 
    child1:[child1], 
    child2:[child2] 
    } 
} 

я обычно создать поддокумент схему, которая может охватить свойства всех типов объектов, я Тринг придерживаться в массиве, но это слишком другой. С точки зрения контроллера дочерние схемы являются типами doc_collection.

ответ

0

, если мои воспоминания хорошие, мангуст не обрабатывает сложный тип массива (в срок проверки содержимого)

, что означает, если ваша модель как:

{ 
    doc_collection : [] 
} 

{ 
    doc_collection : [child1] 
} 

то же самое. и худшее в том, что если ваша модель

{ 
    doc_collection : [child1] 
} 

вы могли бы добавить anythind в массиве doc_collection

myModel.doc_collection.push(anyChild2); 

взглянуть на главу массива: http://mongoosejs.com/docs/schematypes.html

+0

ли это значит, что Я могу либо использовать одну схему вспомогательного документа, либо смешанную, но я не могу указать список схем вспомогательных документов? – Simon

Смежные вопросы