• [mongoDB] mongoose 사용하기 (2)

    2023. 5. 24.

    by. 지은이: 김지은

    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

    댓글