-
728x90
이전 글 처럼 데이터베이스 연결까지 했다면?
이전 글 보기 👉 [MongoDB] Mongoose 사용하기 (1)
[MongoDB] Mongoose 사용하기 (1)
Mongoose ODM(Object Data Modeling)이란? mongoose는 MongoDB ODM 중 가장 유명한 라이브러리. MongoDB의 Collection에 집중하여 관리하도록 도와주며 관련 기능들을 쉽게 사용할 수 있도록 도와준다. Mongoose ODM을 사
jisilver-k.tistory.com
mongoose ODM 사용하기 - CRUD
작성된 모델을 이용하여 CRUD(생성, 조회, 수정, 삭제)를 수행할 수 있다.
CRUD 함수명 CREATE create READ find, findById, findeOne UPDATE updateOne, updateMany, findByIdAndUpdate, findeOneAndUpdate DELETE deleteOne, deleteMany, findByIdAndDelete, findOneAndDelete CREATE
create 함수를 사용해서 새로운 문서를 생성한다. (Object, Array 전달 가능)
const { Post } = require('./models') // Model.create(data, callback) async function main() { const created = await Post.create({data}) }
참고로 CRUD는 비동기로 만들어야 한다(DB에서 받아오는데 시간이 걸리기 때문)
READ
find 관련 함수를 사용해서 문서를 검색한다.
conditions는 검색 조건을 지정하는객체
query를 사용하여 검색하거나 findById를 사용하면 ObjectID로 Document를 검색할 수 있다.
const { Post } = require('./models') async function main() { // Model.find(conditions, callback) const listPost = await Post.find(query); // Model.findOne(conditions, callback) const onePost = await Post.findOne(query); // Model.findOne(id, callback) const postById = await Post.findById(id); }
UPDATE
update 관련 함수를 사용하여 문서를 수정한다.
find~ 함수들은 검색된 문서의 업데이트를 반영하여 반환하며 통째로 변경하지 않는다.
async function main() { const updateResult = await Post.updateOne(query, { // Model.updateOne(conditions, update, callback) 조건에 해당하는 첫번째 문서 업데이트 후 문서 개수 반환 }); const updateResults = await Post.updateMany(query, { // Model.updateMany(conditions, update, callback) 조건에 해당하는 모든 문서 업데이트 }); const postById = await Post.findByIdAndUpdate(id, { // findByIdAndUpdate(id, update, options, callback) 지정한 id에 해당하는 문서 업데이트 }); const onePost = await Post.findOneAndUpdate(query, { // findOneAndUpdate(conditions, update, options, callback) 조건에 해당하는 첫번째 문서 업데이트 후 문서 반환 }); }
DELETE
delete 관련 함수를 사용하여 문서를 삭제한다.
find~ 함수들은 검색된 문서를 반환한다.
async function main(){ // Model.deleteOne(conditions, callback) 조건에 해당하는 문서 중 첫번째 문서 삭제 후 삭제된 문서 개수 반환 const deleteResult = await Post.deleteOne(query); // Model.deleteMany(conditions, callback) 조건에 해당하는 모든 문서 삭제 const deleteResults = await Post.deleteMany(query); // findOneAndDelete(conditions, options, callback) 조건에 해당하는 첫번 째 문서 삭제 후 삭제된 문서 반환 const onePost = await Post.findOneAndDelete(query); // findByIdAndDelete(id, options, callback) 지정한 id에 해당하는 문서를 삭제 const postById = await Post.findByIdAndDelete(query); }
'MongoDB' 카테고리의 다른 글
[MongoDB] 비교쿼리 연산자 (eq, ne, gt, lt, gte, lte) (0) 2023.05.29 [MongoDB] Mongoose 사용하기 (1) (0) 2023.04.08 [MongoDB] MongoDB란? (0) 2023.04.07 댓글