【问题标题】:Sub-Schemas on Mongoose without Arrays没有数组的 Mongoose 上的子模式
【发布时间】:2015-02-17 16:11:47
【问题描述】:

所以,我想知道,即使我知道您不能创建单个子文档,我仍然想创建一个子文档,以便我可以正确使用默认和其他猫鼬类型,有没有办法还做这种事?

例如:

var SomeOtherScheme = new Schema({
a              : { type:String, default:'test' },
b              : { type:Boolean, default:false }
...
});

var GroupSettings = new Schema({
x              : { type:Number, default:20 },
y              : { type:Boolean, default:false },
...
else           : { type:SomeOtherScheme, default:SomeOtherScheme }
});

var Group = new Schema({
name                : { type:String , required:true, unique:true},
description         : { type:String, required:true },
...
settings            : {type:GroupSettings,default:GroupSettings}
});

【问题讨论】:

  • 那就试试吧。成功了吗?

标签: javascript node.js mongodb mongoose document


【解决方案1】:

嵌入对象的模式需要使用普通对象来定义,所以如果你想保持定义分开,你可以这样做:

var SomeOther = {
    a              : { type:String, default:'test' },
    b              : { type:Boolean, default:false }
    ...
};
var SomeOtherSchema = new Schema(SomeOther); // Optional, if needed elsewhere

var GroupSettings = {
    x              : { type:Number, default:20 },
    y              : { type:Boolean, default:false },
    ...
    else           : SomeOther
};
var GroupSettingSchema = new Schema(GroupSettings); // Optional, if needed elsewhere

var GroupSchema = new Schema({
    name                : { type:String , required:true, unique:true},
    description         : { type:String, required:true },
    ...
    settings            : GroupSettings
});

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 2022-01-20
    • 2018-06-11
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多