All'alba vincerò

At dawn, I will win!

기타

collection: 특정 라이브러리/데이터베이스에서 데이터를 저장 & 관리하는 컨테이너 객체

나디아 Nadia 2024. 8. 25. 10:23

📌 collection(컬렉션)

: 특정 라이브러리/데이터베이스에서 데이터를 저장 & 관리하는 컨테이너 객체

  • 보통 데이터베이스 클라이언트 라이브러리에서 사용되며, 컬렉션(데이터베이스 테이블과 유사한 개념)과 상호작용할 수 있는 인터페이스를 제공한다.
  • 동일한 구조의 문서(Document)들을 저장하는 컨테이너 역할
  • 특정 라이브러리에서는 collection 객체를 사용하여 데이터를 생성, 조회, 업데이트, 삭제 등의 작업을 수행할 수 있다.
  • 각 문서는 일반적으로 JSON 형식으로 저장되며, 고유의 ID를 가진다.
  • 예시
    • PocketBase: pb.collection('users') 같은 구문에서 collection은 PocketBase에서 특정 컬렉션을 참조
    • MongoDB: db.collection('users') 같은 구문에서 collection은 -MongoDB에서 특정 컬렉션을 참조
    • Firebase Firestore: db.collection('users') 같은 구문에서 collection은 Firestore에서 특정 컬렉션을 참조

 

 

 

✅ collection(컬렉션) 메서드

  • 컬렉션에 저장된 데이터에 대해 작업을 수행하는 함수
  • 보통 데이터베이스 클라이언트 라이브러리를 통해 제공한다.

 

create(data)

: 새로운 문서를 컬렉션에 추가

collection.create({name: "John Doe", email: "john@example.com"})

 

 

 

getList(queryOptions)

: 페이징을 통해 문서 목록을 가져옴 

  • 일반적으로 문서들의 배열을 결과로 반환
  • 추가적인 페이징 정보(총 페이지 수 등)를 포함할 수 있다.
collection.getList({ page: 1, perPage: 10 })

 

 

 

getFullList()

: 컬렉션의 모든 문서를 가져옴 

  • 페이징 없이 모든 데이터를 가져오는 메서드
  • 큰 컬렉션에서는 성능에 영향을 미칠 수 있다.
collection.getFullList()

 

 

 

update(id, data)

: 주어진 id를 가진 문서를 업데이트

  • id: 문서를 고유하게 식별하는 값
  • data: 문서를 업데이트할 새 데이터
  • 주의사항
    • 문서를 부분적으로 업데이트할 수 있으며, data 객체에 포함된 필드만 변경된다.
    • 일부 시스템에서는 변경된 필드만 적용되고, 다른 필드는 유지된다.
collection.update("12345", { name: "Jane Doe", email: "jane@example.com" });
// "12345"라는 ID를 가진 문서를 찾아, 그 문서의 name과 email 필드를 업데이트함

 

 

 

delete(id)

: 주어진 id를 가진 문서를 컬렉션에서 삭제

 

  • 주의사항
    • 삭제된 문서는 복구할 수 없으므로, 이 작업을 수행하기 전에 주의해야 한다.
    • 삭제 작업이 성공하면, 일반적으로 true나 삭제된 문서의 ID를 반환한다.
collection.delete("12345");
// "12345"라는 ID를 가진 문서를 컬렉션에서 삭제

 

 

 

getOne(id)

: 주어진 id를 가진 단일 문서를 조회

  • 해당 문서의 전체 내용을 결과로 반환
  • 주의사항
    • 해당 id의 문서가 존재하지 않으면, 오류를 반환하거나 null을 반환
    • 특정 필드만 선택적으로 가져올 수 있는 옵션이 있는 경우, 이를 활용해 성능을 최적화할 수 있다.
const user = await collection.getOne("12345");
// "12345"라는 ID를 가진 문서를 조회, 해당 문서의 내용을 user 변수에 저장합

console.log(user);


 

 

☑️ 사용 예시

컬렉션 users ➡︎ 이 컬렉션에 사용자의 정보가 저장되어 있을 경우

사용자 정보 업데이트

  • 사용자가 자신의 이메일 주소를 변경하려는 경우, update 메서드를 사용하여 해당 사용자의 ID에 맞는 문서를 업데이트할 수 있다.
collection.update("user123", { email: "newemail@example.com" });



사용자 계정 삭제

  • 사용자가 자신의 계정을 삭제하려는 경우, delete 메서드를 사용하여 컬렉션에서 해당 사용자의 문서를 삭제할 수 있다.
collection.delete("user123");



특정 사용자 정보 조회

  • 관리자가 특정 사용자의 정보를 조회하려는 경우, getOne 메서드를 사용하여 해당 사용자의 정보를 가져올 수 있다.
const userInfo = collection.getOne("user123");

 

 


 

 

 

PocketBase - Open Source backend in 1 file

Open Source backend in 1 file with realtime database, authentication, file storage and admin dashboard

pocketbase.io