如何在Mongoose中将模式属性设置为SubDocument类型?

时间:2015-08-20 19:58:17

标签: javascript node.js mongoose

我想做这样的事情:

var userSchema = new Schema({
  local: localSchema,
  facebook: facebookSchema,
  twitter: twitterSchema,
  google: googleSchema
});

但似乎架构不是有效的SchemaType

在SubDocuments guide中,他们只给出了一个将子模式放在数组中的示例,但这不是我想要做的。

var childSchema = new Schema({ name: 'string' });

var parentSchema = new Schema({
  children: [childSchema]
})

1 个答案:

答案 0 :(得分:0)

看起来你只是想为每个属性创建一个子对象。你可以通过两种方式实现这一目标。

嵌入在架构中

var userSchema = new Schema({
    local: {
        someProperty: {type: String}
        //More sub-properties...
    }
    //More root level properties
});

要在多个模式中使用的可重用对象

//this could be defined in a separate module and exported for reuse
var localObject = {
    someProperty: {type: String}
    //more properties
}

var userSchema = new Schema({
    local: localObject
});

var someOtherSchema = new Schema({
    test: localObject
});