MongoDB에서 $exists 연산자를 사용하는 방법

MongoDB에서 $exists 연산자를 사용하는 방법

2022-06-04 last update

6 minutes reading MongoDB
MongoDB는 다양한 조작부호 클래스가 데이터베이스에서 데이터를 검색할 수 있도록 지원하는 NoSQL 데이터베이스입니다.그 중 하나의 요소 조회 클래스;그것은 두 명의 조작원으로 구성되어 있다 $및 $유형이 있습니다.$exists 조회에서 지정한 필드를 포함하거나 포함하지 않는 문서를 가져오려면 $exists 연산자가 작동합니다.$exists 명령의 기초는 부울 값을 기반으로 합니다. 이 값은 사용자의 요구에 따라 출력을 결정합니다.
$exists 연산자의 사용은 단일 필드를 기반으로 한 전체 문서를 가져오거나 무시하는 데 국한되지 않습니다.$exists와 몇 개의 비교 연산자, 예를 들어 $gt, $lt, $eq, $nin을 사용하면 출력을 더욱 세분화할 수 있습니다.
본 논문은 MongoDB의 $exists 운영자를 깊이 있게 이해하기 위한 것입니다.

$exists 연산자의 작업 방식


MongoDB의 $exists 작업자의 주요 기능은 문서에 필드가 있는지 찾는 것입니다.$exists 연산자는 부울 값 (즉true 또는false) 을 기반으로 작동합니다.연산자의 구문은 다음과 같습니다.
{field: {$exists: "Boolean-Value"}}
이 값이 "true"로 전달되면 지정한 필드가 있는 모든 문서를 표시합니다.그러나 부울 값이 "false"로 설정되면 지정된 필드 이외의 문서가 인쇄됩니다.

MongoDB에서 $exists 연산자를 사용하는 방법


시작하기 전에MongoDB 데이터베이스에 연결하고 $exists 조작부호를 적용할 데이터베이스의 내용을 가져와야 합니다.
본고에서 사용한 데이터베이스 이름은
이 데이터베이스와 관련된 집합:staff
아래에 언급된 명령을 사용하여 데이터베이스에 ubuntu 터미널을 연결합니다.
$ sudo mongo 

이 문서에서는 $exists 연산자의 사용을 다음과 같이 연습합니다.
> db.staff.find().pretty()

예 1: $exists 연산자의 기본 사용법


$exists 기능은 부울 값에 따라 다릅니다. 지정한 필드를 포함하는 문서를 가져오려면 "true"값을 전달해야 합니다.단, "false"값을 $exists에 전달하면 지정한 필드가 없는 문서를 얻을 수 있습니다.
이 예는 $exists 연산자에서 "true"를 사용하는 것을 보여 줍니다. 다음에 언급된 검색은 "experience"필드를 포함하는 모든 문서를 검색합니다.
> db.staff.find({experience: {$exists: true}}).pretty()
Text Description automatically generated
또한 아래에 언급된 명령은 "false"값의 사용법을 보여 줍니다. 출력은 "experience"필드가 없는 문서만 포함됩니다.
> db.staff.find({experience: {$exists: false}}).pretty()

예 2: 비교 연산자는 $exists 를 사용합니다.


이 예는 비교 연산자가 있는 $exists 명령의 사용법을 보여 줍니다.이 경우 결과는 이중 필터 뒤에 표시됩니다.첫 번째 필터는 $exists를 실행할 때 적용되고, 두 번째 필터는 비교 연산자를 호출할 때 적용됩니다.
$exists with$gt 연산자 사용: 이 비교 연산자는'보다'조건을 충족시키는 값을 표시하는 데 사용됩니다.우리의'직원'이 집합한''데이터베이스에서"Salary"라는 필드가 있습니다. 예를 들어, 다음 질의는 다음 조건에서 출력됩니다.
  • 우선, $exists 연산자는 "Salary"필드가 포함된 문서를 필터링합니다.
  • 이후 $gt operator는 "Salary"값이 "150"이상인 문서만 인쇄합니다
  • > db.staff.find({Salary: {$exists: true, $gt: 150}}).pretty()

    $exists를 $nin 연산자와 함께 사용: $nin 연산자도 $exists 연산자와 함께 사용할 수 있습니다. 이 연산자들은 다음과 같이 작동합니다.
    - 우선, $exists는 지정된 필드에 따라 문서를 선택합니다.
    그런 다음 $nin은 지정된 값이 없는 문서를 인쇄하는 데 도움이 됩니다.
    예를 들어, 다음 명령은 지정 필드에 따라 문서를 인쇄합니다.팀 리더로 지정된 다른 사람이 이 질의에 포함됩니다.
    > db.staff.find({designation: {$exists: true, $nin: ["Team-lead"]}}).pretty()

    이와 유사하게 $exists 명령을 사용하여 다양한 비교 연산자를 연습하여 더욱 정확한 출력을 얻을 수 있다.

    결론


    모든 데이터베이스 관리 시스템의 조회 기능은 데이터를 검색하는 데 관건적인 역할을 한다.대형 조직의 데이터베이스에 복잡한 형식의 데이터가 저장되어 있기 때문이다.따라서 이들 회사는 한동안 필요한 데이터를 검색하기 위해 조회를 활용하는 경향이 있다.조작부호는 모든 조회의 관건적인 구성 요소이다.본고에서, 우리는 MongoDB에서 $exists 조작부호를 사용하는 것을 연습했다.이 연산자는 문서의 필드 가용성을 확인하는 데 사용되며, 지정한 필드가 없는 문서를 가져올 수 있습니다.$exists 연산자의 상기 기능은 이 연산자에게 전달할 수 있는'부울 값'에 의해 지원됩니다.