Как превратить sh вложенный объект с параметрами SchemaType в модель mon goose? - PullRequest
0 голосов
/ 05 мая 2020

Моя мон 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"
  }
]

1 Ответ

0 голосов
/ 08 мая 2020

Ваш синтаксис схемы Mon goose неверен. Я исправил как:

const { Schema, model } = require('mongoose');

const VacancySchema = new Schema({
  parameters: [],
  timestamps: true,
  strict: false
});

const Vacancy = model('Vacancy', VacancySchema);

module.exports = Vacancy;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...