📌 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");