Моя мон goose модель:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const VacancySchema = new Schema(
{
parameters: []
},
{ timestamps: true },
{ strict: false }
);
module.exports = mongoose.model('Vacancy', VacancySchema);
Я пытаюсь создать динамическую модель c в node.js, используя mon goose. Поле parameters
принимает список объектов. Эти объекты являются вложенными javascript объектами, которые содержат некоторые данные и параметры SchemaType, такие как type, trim, required, etc.
, которые изменяют содержимое данных. Я хочу вставить эти и аналогичные поля в массив parameters
в mon goose.
Как вы могли догадаться, эти поля являются динамическими c, и я не могу изначально сохранить их в модели. Теперь проблема, с которой я столкнулся, заключается в том, что когда я сохраняю эти объекты в модели, такие параметры, как trim
, теряют свою функциональность, то есть не работают. Если я сначала вставлю эти параметры, а затем сделаю sh данные, поля будут перезаписаны. Как лучше всего справиться с этой ситуацией?
РЕДАКТИРОВАТЬ:
Чтобы вставить данные:
await Vacancy.create({
parameters: paramArray,
template: "some id",
status: 0
});
Пользовательский ввод:
{
client: " ABC ",
name: " XYZ ",
}
Объект, который я сохранил как json:
paramArray: [
client: {
type: String,
trim: true,
required: true,
section: 0
},
name: {
type: String,
trim: true,
section: 0
}
]
Ожидаемый результат:
Вывод в базе данных: (данные пользователя сохраняются в базе данных, и к данным применяется операция обрезки)
parameters: [{
client: "ABC"
},
{
name: "XYZ"
}
]