HOWTO · MongoDB

MongoDB에서 문자열 길이를 사용한 쿼리

이 튜토리얼에서는 MongoDB에서 문자열 길이로 쿼리하는 방법에 대해 설명합니다.

이 페이지의 내용

경우에 따라 문자열 길이와 같은 예외적인 속성을 사용하여 특정 문서를 찾아야 합니다. 이 기사에서는 MongoDB에서 문자열 길이를 사용하여 특정 문서를 찾는 방법과 이해하기 쉽게 주제에 대한 예제를 볼 것입니다.

문자열 길이를 기반으로 컬렉션에서 특정 문서 찾기

컬렉션에서 특정 문서를 찾기 위해 find()라는 MongoDB의 매우 일반적인 내장 메서드를 사용합니다. 그러나 문자열 길이를 기반으로 문서를 찾으려는 경우 몇 가지 예외적인 기준을 제공해야 합니다.

다음 예제에서는 문자열 길이를 기반으로 특정 문서를 찾는 두 가지 방법을 볼 것입니다.

아래 예에서는 문자열 길이를 기준으로 문서를 찾는 방법을 살펴보겠습니다.

그러나 먼저 컬렉션에서 사용할 수 있는 문서를 확인하겠습니다. 이를 위해 아래 명령을 사용합니다.

db.mydata.find()

위의 명령은 mydata 컬렉션의 모든 문서를 표시합니다.

{ _id: ObjectId("63713371117701ff3d627b56"),
  Name: 'Alen',
  Email: 'abc@gmail.com',
  Year: 2018 }
{ _id: ObjectId("63713371117701ff3d627b57"),
  Name: 'Max',
  Email: 'max@gmail.com',
  Year: 2017 }
{ _id: ObjectId("63713371117701ff3d627b58"),
  Name: 'Ethen',
  Email: 'ethen@gmail.com',
  Year: 2019 }
{ _id: ObjectId("63713371117701ff3d627b59"),
  Name: 'Alex',
  Email: 'alex@gmail.com',
  Year: 2020 }

위는 우리 컬렉션에서 사용할 수 있는 문서입니다. 다음 단계로 갑시다.

이제 문자열 길이를 기준으로 문서를 찾는 데 사용할 수 있는 방법을 살펴보겠습니다. 이를 위해 이름 필드의 길이를 사용합니다.

$where 키워드 사용

이를 위해 $where 키워드를 사용할 수 있습니다. 명령은 다음과 같습니다.

db.mydata.find({ $where: 'this.Name.length > 4' })

집계 사용

집계를 사용하려면 아래 명령을 따를 수 있습니다.

db.mydata.find({
Name: { $exists: true },
$expr: { $gt: [{ $strLenCP: '$Name' }, 4] } })

위 명령에서 $gt 키워드는 보다 큼을 의미합니다. 이제 MongoDB 콘솔에서 두 명령을 모두 실행하면 다음과 같은 동일한 출력이 표시됩니다.

{ _id: ObjectId("63713371117701ff3d627b58"),
  Name: 'Ethen',
  Email: 'ethen@gmail.com',
  Year: 2019 }

이 문서에 표시된 명령은 MongoDB 데이터베이스용이며 명령은 MongoDB 콘솔에서 실행해야 합니다.