了解mongoose [Schema.Types.Mixed]

时间:2013-05-14 00:49:05

标签: node.js mongodb schema mongoose

以下架构是否正确定义或writing是否需要 writing: [Schema.Types.Mixed] writing: [{}]

也就是说,如果你有一个字典数组 - [{},{},{}] - 除非你创建另一个模式并嵌入它,否则不能预定义内部结构。这是对文档的正确解释吗?

http://mongoosejs.com/docs/schematypes.html

var blogSchema = new mongoose.Schema({
  title:  String,
  writing: [{
        post: String,
        two: Number,
        three : Number,
        four  : String,
        five : [{  a: String,
                    b : String,
                    c  : String,
                    d: String,
                    e: { type: Date, default: Date.now }, 
                }]
  }],
});

感谢。

1 个答案:

答案 0 :(得分:20)

那个架构很好。在数组模式元素中定义对象被隐式视为其自己的Schema对象。因此,他们将拥有自己的_id字段,但您可以通过明确定义禁用了_id选项的架构来禁用它:

var blogSchema = new mongoose.Schema({
    title: String,
    writing: [new Schema({
        post: String,
        two: Number,
        three : Number,
        four  : String,
        five : [new Schema({ 
            a: String,
            b: String,
            c: String,
            d: String,
            e: { type: Date, default: Date.now }, 
        }, {_id: false})]
    }, {_id: false})],
});