dynamoose如何让多个模型共享一个表?

时间:2018-04-25 15:29:36

标签: javascript lambda amazon-dynamodb dynamoose

您可以使用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 ...的内容。来自new Coursenew Teachers函数的return语句具有我添加的所有参数,但它们实际上并未在数据库中结束。那是为什么?

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 :(得分:0)

我弄清楚发生了什么事。 Dynamoose doesn't support having multiple models for the same table。这可能是未来的一个特点。我认为解决这个问题的最佳方法是将模型合并在一起或使用不同的ORM。