猫鼬架构多对多协会

时间:2019-05-15 12:33:20

标签: typescript mongoose associations mongoose-schema mongoose-populate

我有这种情况

在我的数据库中,我有:

  • X个区域
  • Y> X作物

这意味着1个区域可以包含1个以上的作物。

此外,多个区域可能存在超过1种作物

所以我面对着很多对很多的关系

  

我的问题是这样的:   我必须保留有关每种农作物克的信息。

我的想法是这样的:

区域架构:

var ZoneSchema = new mongoose.Schema({
    name: String,
    crops: [{
        type: Schema.Types.ObjectId,
        ref: 'crop'
    }]
});

裁剪模式:

var CropSchema = new mongoose.Schema({
    name: String,
    zones: [{
        type: Schema.Types.ObjectId,
        ref: 'zone'
    }],
    grams: Number
});

但是以这种方式,如果该区域包含1个以上的作物,我将无法获得1个区域中1种作物的克数。

  

我想创建一个这样的额外模型:

ZoneCropsInfo

var ZoneCropsInfoSchema = new mongoose.Schema({
    zone:{
        type: Schema.Types.ObjectId,
        ref: 'zone'
    },
    grams: Number
});

并将“裁剪模式”更改为此:

裁剪模式:

var CropSchema = new mongoose.Schema({
    name: String,
    zonecropsinfo: [{
        type: Schema.Types.ObjectId,
        ref: 'zonecropsinfo'
    }]
});

这是个好主意吗?

0 个答案:

没有答案