몽고DB 기본 사용방법

greenTea·2024년 4월 2일

insert()

insert() 메서드의 주요 옵션

  1. 단일 문서 삽입

    db.collection.insertOne({ key: value })

    단일 문서를 컬렉션에 삽입합니다. 기존에는 insert()라는 메소드가 있었지만 지금은 insertOne()insertMany()로 구분해서 사용하는 것을 권장하고 있습니다.

  2. 여러 문서 삽입

    db.collection.insertMany([
      { key1: value1 },
      { key2: value2 },
      // 추가 문서들
    ])

    여러 문서를 한 번에 컬렉션에 삽입합니다. 이때 json객체들이 []안에 있는데 이것을 생략하시면 안됩니다.

  3. 쓰기 안정성 보장

    db.collection.insertOne(document, { writeConcern: <document> })

    쓰기 작업의 안정성을 보장하기 위해 Write Concern을 설정할 수 있습니다. 이 옵션은 쓰기 작업이 성공적으로 완료되었음을 확인하는 데 사용됩니다.
    { w: , j: , wtimeout: }

  • w
    쓰기 작업이 지정된 수의 mongod 인스턴스로 전파되었는지를 확인합니다. replica mongodb가 존재하는 경우 설정 옵션에 따라 개수를 확인하고 응답합니다. (majority의 경우 과반수로 적용하며 숫자를 적는 경우 해당 숫자만큼에 저장된 것을 확인)

  • j
    쓰기 작업이 온디스크 저널에 기록되었다는 확인을 요청합니다. 이를 통해 나중에 복구를 할 경우 log에 남긴 명령어들을 이용해서 다시 해당 상태로 복구할 수 있는 옵션입니다. false로 지정할 경우 성능은 올라갈 수 있지만 안정성은 떨어질 수 있습니다.

  • wtimeout
    timeout을 설정할 수 있습니다.

  1. 유니크 인덱스 관리

    db.collection.insert(document, { ordered: <boolean> })

    ordered 옵션을 사용하여 유니크 인덱스 충돌 시 동작을 지정할 수 있습니다. 기본값은 true이며, 이 경우 삽입 작업이 중단됩니다. false로 설정하면 중단되지 않고 계속 진행됩니다.

find()

find() 메서드의 기본 구문

db.collection.find(query, projection)
  • query : 검색할 조건을 나타내는 문서입니다. 예를 들어서 이름이 john인 document를 찾는다면?
    {name : john}형태로 사용하시면 됩니다. 기본은 eq로 사용이 됩니다. 또는 아래와 같이 조건식으로도 사용하실 수 있습니다.
    {age : {$gt : 20}} (많은 표현식이 있기에 공식문서를 보시는 것을 추천드립니다.)
  • projection (선택 사항) : 반환될 문서의 필드를 제어합니다. 사용 예로는 {name: 1, age: 0} -> name을 출력하되 age는 출력을 하지 않는다.(단 _id는 기본으로 출력이 되기에 출력을 하고 싶지 않다면 _id:0을 명시적으로 설정해주시면 됩니다.)

find() 메서드의 주요 옵션

  1. 검색 조건 지정

    db.collection.find({ key: value })

    이것은 필드 key가 특정 값 value와 일치하는 문서를 반환합니다.

    다양한 연산자를 사용하여 더 복잡한 조건을 지정할 수도 있습니다. 몇 가지 예는 다음과 같습니다:

  • $eq : 값이 주어진 값과 동일한 문서를 반환합니다.

  • $gt : 값이 주어진 값보다 큰 문서를 반환합니다.

  • $lt : 값이 주어진 값보다 작은 문서를 반환합니다.

  • $in : 값이 주어진 배열의 값 중 하나와 일치하는 문서를 반환합니다.

  • $and: 논리적 AND를 사용하여 쿼리 절을 조인하면 두 절의 조건과 일치하는 모든 문서를 반환합니다.

  • $not: 쿼리 표현식의 효과를 반전시키고 쿼리 표현식과 일치하지 않는 문서를 반환합니다.

  • $nor: 논리적 NOR를 사용하여 쿼리 절을 조인하면 두 절과 일치하지 않는 모든 문서를 반환합니다.

  • $or: 논리적 OR를 사용하여 쿼리 절을 조인하면 두 절의 조건과 일치하는 모든 문서를 반환합니다.

  • $exists: 지정된 필드가 있는 문서와 일치시킵니다.
  • $type: 필드가 지정된 유형인 경우 문서를 선택합니다.
  • $regex: 지정된 표현식과 일치하는 값이 있는 문서를 선택합니다.
  1. 제한

    db.collection.find().limit(number)

    반환되는 문서 수를 제한합니다. number는 반환할 최대 문서 수입니다.

  2. 건너뛰기

    db.collection.find().skip(number)

    결과에서 처음 number 개의 문서를 건너뜁니다. 주로 페이징을 구현할 때 사용됩니다.

MongoDB 공식문서 : MongoDB

profile
greenTea입니다.

0개의 댓글