Sequelize에 대한공부- Model Querying - Basics

공부중인 개발자·2021년 8월 30일
0

sequelize

목록 보기
5/6
post-thumbnail
초보개발자입니다. 틀린부분이 있다면 언제든지 말씀해주시면 감사합니다!

모델 기본쿼리문 작성에 대해서 공부했다.

표준 CRUD 에 대해 알려주는 내용이었는데 보기전에 먼저 트랜잭션에 관한 가이드를 읽어야 한다고한다. 트랜잭션을 통해 데이터 무결성을 보장하고 다른 이점을 가질 수 있다고 한다. 그래서 트랜잭션에 대한 가이드를 읽어봤고 시퀄라이즈에서 트랜잭션은 기본적으로 사용하지 않지만 사용하는 방법에 대한 설명이 나와있었다.

트랜잭션의 이야기는 추후 하도록하고 번저 CRUD에 대해 알아보기로했다.

먼저 Create 레코드 생성부분이며 약식으로 유저테이블의 레코드를 만드는 법에 대해 나와있다.

다음은 레코드를 생성하더라도 fields 를 지정하게 되면 fields 에 지정되어있는 것만 저장된다.

const User = sequelize.define("user", {
  username: DataTypes.TEXT,
  favoriteColor: {
    type: DataTypes.TEXT,
    defaultValue: "green",
  },
  age: DataTypes.INTEGER,
  cash: DataTypes.INTEGER,
});

(async () => {
  await sequelize.sync({ force: true });
  const user = await User.create(
    {
      username: "alice123",
      age: 14,
    },
    { fields: ["username", "favoriteColor"] }
  );
  // let's assume the default of isAdmin is false
  console.log(user.username); // 'alice123'
  console.log(user.favoriteColor);
  console.log(user);

  // If the values are incremented by the same amount, you can use this other syntax as well:
})();

예시를 만들기 위해 작성한 코드로 console.log 의 값은 다음과 같다.

create 값에 나이를 넣었지만 실제로 생성된 자료에는 나이가 들어가지 않았다.

다음은 Read 에 관한 시퀄라이즈 문법이다.

기본적인 테이블 전체 불러오기이며 다음으로 특정 컬럼 불러오는 방법에 대해 기술되고 있다.

attributes를 이용하면 원하는 컬럼만 선택해서 가져올 수 있으며
이중배열을 통해 column의 key를 원하는 이름으로 변경할 수 있다.
마지막으로 sequelize.fn을 통해 쿼리문을 직접 작성할 수 있는데
sequelize.fn('COUNT', sequelize.col('hats'))를 통해 hats컬럼의 숫자를 세는 쿼리문을 만들어내고 "n_hats"로 이름을 바꾼다.

다음은 include: 에 대한 설명인데 위의 findAll과 밑의 findAll은 같은 리스트를 보여준다. 하지만 위의 경우 모든 컬럼을 작성하고 추가로 n_hats의 컬럼을 만들어내는 것이고 밑의 리스트의 경우 모든 컬럼을 작성하지 않는대신 include를 사용하여 기존 컬럼에 추가로 n_hats을 넣었다.

비슷하게 이번엔 컬럼을 빼는 방법에 대해서 설명하고 있다.

다음으로 조건에 대해서 나오는데 기본적인 조건은 넘어가고 Op에 대해서 알아보겠다.

검색하는 방법에 대해 자세하게 예시를 들어서 설명해주고 있다. Query문과 비교해서 공부해보자.

다음에 아예 Op를 예시로 써보는 연습을 해야겠다.

UD의 경우 다음과 같이 간단하게 표현되어있다. .update / .destroy 이 두가지로 수정과 삭제가 가능하다.

나머지 basic은 다음에 작성해야겠다.

profile
열심히 공부하자

0개의 댓글