Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 모든 항목을 조회하는 방법 – find() 메서드 활용 가이드

MongoDB에서 컬렉션에 저장된 모든 항목(문서)을 조회하려면 find() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 문서 삽입부터 전체 조회, 그리고 특정 필드만 선택적으로 가져오는 방법까지 단계별로 살펴보겠습니다.

1. 테스트용 컬렉션 생성하기

먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다.

> db.queryAllItemsDemo.insertOne({"StudentDetails":{"StudentName":"John","StudentSubject":["MongoDB","MySQL"],"StudentSubjectPrice":[4000,6000]},"OtherDetails":{"UserAge":29,"UserCountryName":"US"}});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cef74ecef71edecf6a1f69f")
}

위 명령은 학생 정보(StudentDetails)와 기타 정보(OtherDetails)를 담은 중첩 구조의 문서 하나를 queryAllItemsDemo 컬렉션에 성공적으로 삽입했습니다.

2. find()로 전체 문서 조회하기

find() 메서드를 사용하면 컬렉션의 모든 문서를 한 번에 확인할 수 있습니다. 여기에 pretty()를 붙이면 결과가 보기 좋게 정렬되어 출력됩니다.

> db.queryAllItemsDemo.find().pretty();

실행 결과

{
    "_id" : ObjectId("5cef74ecef71edecf6a1f69f"),
    "StudentDetails" : {
        "StudentName" : "John",
        "StudentSubject" : [
            "MongoDB",
            "MySQL"
        ],
        "StudentSubjectPrice" : [
            4000,
            6000
        ]
    },
    "OtherDetails" : {
        "UserAge" : 29,
        "UserCountryName" : "US"
    }
}

조건 없이 find()를 호출하면 컬렉션 내 모든 문서와 모든 필드가 반환되는 것을 확인할 수 있습니다.

3. 프로젝션으로 특정 필드만 조회하기

전체 데이터가 아니라 원하는 필드만 가져오고 싶다면 find()의 두 번째 인자에 프로젝션(projection)을 지정하면 됩니다. 아래 예제는 StudentDetails 필드만 선택하여 조회하는 방법입니다.

> db.queryAllItemsDemo.find({},{StudentDetails: 1}).pretty();

실행 결과

{
    "_id" : ObjectId("5cef74ecef71edecf6a1f69f"),
    "StudentDetails" : {
        "StudentName" : "John",
        "StudentSubject" : [
            "MongoDB",
            "MySQL"
        ],
        "StudentSubjectPrice" : [
            4000,
            6000
        ]
    }
}

결과를 보면 _id와 지정한 StudentDetails 필드만 반환된 것을 알 수 있습니다. 참고로 MongoDB에서는 별도로 제외하지 않는 한 _id 필드가 항상 기본으로 포함됩니다. 만약 _id도 제외하고 싶다면 {_id: 0, StudentDetails: 1}처럼 프로젝션을 작성하면 됩니다.

정리

  • 전체 문서 조회: 조건 없이 db.컬렉션명.find()를 실행합니다.
  • 보기 좋은 출력: .pretty()를 추가하면 들여쓰기된 형태로 결과가 표시됩니다.
  • 특정 필드만 조회: 두 번째 인자에 프로젝션 객체를 넣어 원하는 필드를 선택합니다.

이처럼 find() 메서드 하나만으로도 MongoDB에서 간단한 전체 조회부터 필드 단위의 세밀한 조회까지 손쉽게 처리할 수 있습니다.