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

MongoDB 셸에서 find()로 특정 값을 가진 문서 항목 조회하기

MongoDB에서 특정 값을 가진 항목을 조회하려면 find() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션 생성부터 조건에 맞는 문서 검색까지 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성

먼저 테스트용으로 사용할 컬렉션에 문서를 삽입해 보겠습니다.

> db.demo563.insertOne({"Name":"Chris","Age":21,"isMarried":true}){
    "acknowledged" : true, "insertedId" : ObjectId("5e8f546c54b4472ed3e8e878")
}
> db.demo563.insertOne({"Name":"Bob","Age":23,"isMarried":false}){
    "acknowledged" : true, "insertedId" : ObjectId("5e8f547854b4472ed3e8e879")
}
> db.demo563.insertOne({"Name":"Carol","Age":23,"isMarried":true}){
    "acknowledged" : true, "insertedId" : ObjectId("5e8f548b54b4472ed3e8e87a")
}
> db.demo563.insertOne({"Name":"Mike","Age":21,"isMarried":true}){
    "acknowledged" : true, "insertedId" : ObjectId("5e8f549454b4472ed3e8e87b")
}

총 4개의 문서가 정상적으로 삽입되었습니다. 각 문서는 이름(Name), 나이(Age), 결혼 여부(isMarried) 필드를 포함하고 있습니다.

2. 전체 문서 확인하기

find() 메서드를 인자 없이 호출하면 컬렉션의 모든 문서를 조회할 수 있습니다.

> db.demo563.find();

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e8f546c54b4472ed3e8e878"), "Name" : "Chris", "Age" : 21, "isMarried" : true }
{ "_id" : ObjectId("5e8f547854b4472ed3e8e879"), "Name" : "Bob", "Age" : 23, "isMarried" : false }
{ "_id" : ObjectId("5e8f548b54b4472ed3e8e87a"), "Name" : "Carol", "Age" : 23, "isMarried" : true }
{ "_id" : ObjectId("5e8f549454b4472ed3e8e87b"), "Name" : "Mike", "Age" : 21, "isMarried" : true }

3. 특정 값으로 문서 조회하기

이제 MongoDB 셸에서 조건을 지정하여 원하는 항목만 가져오는 쿼리를 살펴보겠습니다. 아래 쿼리는 나이(Age)가 21인 문서만 검색하며, 두 번째 인자인 프로젝션(projection)을 통해 반환할 필드를 지정합니다.

> db.demo563.find({Age:21},{isMarried:true,Name:1,Age:1});

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e8f546c54b4472ed3e8e878"), "Name" : "Chris", "Age" : 21, "isMarried" : true }
{ "_id" : ObjectId("5e8f549454b4472ed3e8e87b"), "Name" : "Mike", "Age" : 21, "isMarried" : true }

결과 분석

위 결과를 보면 Age가 21인 Chris와 Mike의 문서만 반환된 것을 확인할 수 있습니다. 참고로 프로젝션에서 true 또는 1은 해당 필드를 포함하겠다는 의미이며, _id 필드는 별도로 제외하지 않는 한 기본적으로 항상 반환됩니다.

이처럼 find() 메서드의 첫 번째 인자에 조건을 담은 객체를 전달하면 손쉽게 원하는 데이터만 필터링할 수 있습니다.