彼此的杂种嵌入式文档



我有一个带有这些集合的蒙古数据库

collection: Category
{
 id:
 catnumber:
 nameNL:
 nameFR:
 subcategories:[id:, nameNL:, nameFR]
 products:[id,nameNL,nameFR]
}
Collection: Product
{
 id:
 nameNL:
 nameFR:
 descriptionNL:
 descriptionFR:
 code1:
 code2:
 categories:[id:,nameNl:,nameFR]
 image:
}

正如您所看到的,我对字段不利。

我有这个,但这似乎不是正确的:

var Schema = mongoose.Schema;
var ProductSchema = new Schema({
 _id: Number,
 nameNL: String,
 nameFR:String,
 descriptionNL:String,
 descriptionFR:String,
 code1:String,
 code2:String,   
 categories: [CategorySchema._id,CategorySchema.nameNL,CategorySchema.nameFR]
});
var CategorySchema = new Schema({
 _id:Number,
 catNumber: String,
 nameNL: String,
 nameFR:String,
 subcategories:[CategorySchema.nameNL,CategorySchema.nameFR],
 products:[ProductSchema._id,ProductSchema.nameNL,ProductSchema.nameFR]
});

我的译本是错误的吗?

您的猫鼬语法有点关闭。尝试此(下图):

请注意,我建议删除root模式的_id字段。Mongo将自动为您生成_id字段,即ObjectId类型,可以派上用场。如果您愿意,您确实可以选择使用_id: Number,但是如果您有充分的理由,我只建议这样做。

var Schema = mongoose.Schema;
var ProductSchema = new Schema({
    nameNL: String,
    nameFR: String,
    descriptionNL: String,
    descriptionFR: String,
    code1: String,
    code2: String,
    categories: [{
        _id: { type: Schema.Types.ObjectId, ref: 'Category' },
        nameNL: String,
        nameFR: String
    }]
});
var CategorySchema = new Schema({
    catNumber: String,
    nameNL: String,
    nameFR: String,
    subcategories: [{
        _id: { type: Schema.Types.ObjectId, ref: 'Category' },
        nameNL: String,
        nameFR: String   
    }],
    products: [{
        _id: { type: Schema.Types.ObjectId, ref: 'Product' },
        nameNL: String,
        nameFR: String
    }]
});

最新更新