Как Dynamoose может иметь несколько моделей с одной таблицей? - PullRequest
0 голосов
/ 25 апреля 2018

Можете ли вы использовать Dynamoose, чтобы несколько моделей использовали одну таблицу? Вот две модели, которые у меня есть, где я хочу, чтобы они были сохранены в одной таблице и различаются по их type хэш-ключам и id ключам диапазона.

const Courses = dynamoose.model(
  process.env.CONTENT_TABLE,
  new dynamoose.Schema(
    {
      id: { type: String, rangeKey: true },
      type: { type: String, hashKey: true },
      department: { type: String },
      description: { type: String },
      image: { type: String },
      name: { type: String },
    },
    {
      throughput: 1,
      timestamps: true
    }
  ),
  { update: true }
);

const Teachers = dynamoose.model(
  process.env.CONTENT_TABLE,
  new dynamoose.Schema(
    {
      id: { type: String, rangeKey: true },
      type: { type: String, hashKey: true },
      picture: { type: String },
      name: { type: String },
      bio: { type: String }
    },
    {
      throughput: 1,
      timestamps: true
    }
  ),
  { update: true }
);

Это методы, которые я использую. Я могу сказать в console.logging, что у параметров args есть то, что я ожидаю, входя в new .... Оператор return из функций new Course или new Teachers содержит все параметры, которые я добавил, но на самом деле они не попадают в базу данных. Почему это так?

create: ({ args, context }) =>
  new Courses({
    id: shortid.generate(),
    type: course,
    ...args
  }).save()

create: ({ args, context }) => {
  console.log(args);
  return new Teachers({
    id: shortid.generate(),
    type: teacher,
    ...args
  }).save();

1 Ответ

0 голосов
/ 25 апреля 2018

Я понял, что происходит.Dynamoose не поддерживает наличие нескольких моделей для одной таблицы .Это может быть функция в будущем, хотя.Я думаю, что лучший способ решить эту проблему - объединить модели или использовать другой ORM.

...