Строки заменяются в AWS Dynamodb - PullRequest
0 голосов
/ 07 марта 2019

Итак, я хочу поместить 3 элемента в мою таблицу DynamodB, которая называется sites . Каждый сайт имеет свой идентификатор пользователя, каждый сайт имеет tour, а каждый сайт имеет несколько pois. Всякий раз, когда я помещаю в строку сайта, он работает нормально, но когда я импортирую тур или poi, он заменяет следующее.

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

Сайт

const params = {
    TableName: "sites",
    Item: {
      userId: event.requestContext.identity.cognitoIdentityId,
      siteId: uuid.v1(),
      siteAddress: data.siteAddress,
      siteCounty: data.siteCounty,
      siteNumber: data.siteNumber,
      siteEmail: data.siteEmail,
      siteCategory: data.siteCategory,
      siteOpeningTimes: data.siteOpeningTimes,
      siteFees: data.siteFees,
      siteAccess: data.siteAccess,
      siteGPS: data.siteGPS,
      siteW3W: data.siteW3S,
      siteHeaderText: data.siteHeaderText,
      siteContentText: data.siteContentText,
      createdAt: Date.now()
    }
  };

  dynamoDb.put(params, (error, data) => {
    // Set response headers to enable CORS (Cross-Origin Resource Sharing)
    const headers = {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Credentials": true
    };

    // Return status code 500 on error
    if (error) {
      const response = {
        statusCode: 500,
        headers: headers,
        body: JSON.stringify({ status: false })
      };
      callback(null, response);
      return;
    }

    // Return status code 200 and the newly created item
    const response = {
      statusCode: 200,
      headers: headers,
      body: JSON.stringify(params.Item)
    };
    callback(null, response);
  });

Тур

const params = {
    TableName: "sites",
    Item: {
      userId: event.requestContext.identity.cognitoIdentityId,
      siteId: event.requestContext.identity.siteId,
      tourId: uuid.v1(),
      tourName: data.tourName,
      waypoints: data.waypoints,
      duration: data.duration,
      tourHeaderText: data.tourHeaderText,
      tourContentText: data.ContentText,
      createdAt: Date.now()
    }
  };

POIs

const params = {
    TableName: "sites",
    Item: {
      userId: event.requestContext.identity.cognitoIdentityId,
      siteId: event.requestContext.identity.siteId,
      poiId: uuid.v1(),
      poiName: data.poiName,
      poiType: data.poiType,
      poiDesc: data.poiDesc,
      poiDuration: data.poiDuration,
      poiRanking: data.poiRanking,
      poiAccess: data.poiAccess,
      poiTime: data.poiTime,
      tourHeaderText: data.poiHeaderText,
      tourContentText: data.poiContentText,
      createdAt: Date.now()
    }
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...