用于mongoose的未定义类型的嵌套模式

时间:2014-06-13 20:20:45

标签: node.js mongodb mongoose

我使用文档构建了一个数据库(使用C#驱动程序):

{
  _id: ObjectID('xxxxxxx'),
  var: 10,
  data: {
           _id: ObjectID('yyyyyyy'),
           data_var1: 11,
           data_var2: 12
        }
}

我尝试使用Mongoose进行设计:

var MyDataType = new Schema({
  _id: ObjectID,
  data_var1: Number,
  data_var2: Number
});

var schema = new Schema({
  _id: ObjectID,
  var: Number,
  data: MyDataType
});

但是,我有这个错误:

  

TypeError:MyDataType

处的未定义类型

您是否尝试过嵌套架构?您只能使用refs或数组进行嵌套。

从错误消息中,似乎不可能像我一样使用模式,我必须使用引用(然后使用mongoose的populate函数)或数组。由于我的数据库,我无法使用数组。我不能使用引用,因为MyDataType没有自己的集合,但它是一个嵌入式文档。

有没有办法在我的数据库中使用它?

注意:使用我的C#驱动程序,schemaMyDataType是类

1 个答案:

答案 0 :(得分:1)

您必须在一个Mongoose模式中定义它:

var schema = new Schema({
  _id: ObjectID,
  var: Number,
  data: {
    _id: ObjectID,
    data_var1: Number,
    data_var2: Number
  }
});