单个子文档数组中的混合模式

时间:2013-06-14 19:22:28

标签: node.js mongoose

如果我有一个父模式,如:

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

和subdoc children:

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

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

parentchema.doc_collection可以保存child1和child2模式的子文档吗?

或者我必须这样做:

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

我通常会创建一个子文档模式,它可以包含我要在数组中保留的所有类型的对象的属性,但这些只是太不同了。从控制器的角度来看,子模式都是doc_collection类型。

1 个答案:

答案 0 :(得分:0)

如果我的记忆很好,猫鼬没有处理复杂类型的数组(在内容验证方面)

这意味着,如果您的模型如下:

{
  doc_collection : []
}

{
  doc_collection : [child1]
}

是一样的。 最糟糕的是,如果你的模型是

{
  doc_collection : [child1]
}

您可以在doc_collection数组

中添加任意数据
myModel.doc_collection.push(anyChild2);

查看数组章节:http://mongoosejs.com/docs/schematypes.html