Mon goose ObjectID как ключ объекта и затем заполнить - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу создать динамический c объект с ключами в качестве objectID другой модели, а затем заполнить динамические c ключи. например, для актива я хочу, чтобы ключи деталей были идентификатором атрибута, но при заполнении деталей я хочу, чтобы ключи были attribute.name вместо _id

attributes:
{
    "_id":"5a23f5e6159f5c3438c75971",
    "name": "name"
    "type": "string"
}
{
    "_id":"5a23f60b159f5c3438c75972",
    "name": "age"
    "type": "number"
}

asset: 
{
    "_id":"5a23f5e6159f5c3438c75973",
    "type": "driver",
    "details": {
        "5a23f5e6159f5c3438c75971": "bob",
        "5a23f60b159f5c3438c75972": "50",
    }
}

populated asset: 
{
    "type": "driver",
    "details": {
        "name": "bob",
        "age": "50",
    }
}


const Attribute = new Schema({
    name: { type: String },
    type: {
        type: String,
        enum: ["string", "number", "mobile", "email"],
    }
})

const Asset = new Schema({
    type: { type: String },
    details: { [{ type: Schema.Types.ObjectId, ref: "Attribute"}]: String }
})

. Я могу определить детали как details: { type: Schema.Types.Mixed } и затем pu sh в объекте с атрибутом id в качестве ключа, но я не могу понять, как их заполнить и как правильно определить схему актива, чтобы включить это. Ценю любую помощь по этому вопросу.

...