반갑습니다!
저번 포스트에 이어서 find() 함수를 사용하여 조건조회시
사용할 수 있는 유용한 추가문법에 대해서 살펴보겠는데요 ^^
$exists와 distinct와 limit에 대해서 알아보겠습니다!
1. 필드 존재 여부로 갯수 세기 : $ exists
먼저 샘플 코드를 보시겠습니다
count() 함수의 파라미터로 특정 조건을 넣어줬는데요 ^^
address 필드의 value가 존재하는 조건을 만족하는 데이터들에 대해서만
count() 함수로 조회하도록 했습니다
MongoDB는 NoSQL 데이터베이스 시스템에 속하는 대표적인 제품 중 하나입니다 ^^
NoSQL 데이터베이스 시스템의 가장 큰 특징 중 하나는
스키마 구조에 제한 받지 않는다는 뜻입니다
※참고※
동일한 데이터베이스, 동일한 컬렉션에 들어가는 도큐먼트라고 하더라도
필드의 구성이 반드시 똑같을 필요는 없습니다 ^^
어떤 데이터에는 name 필드가 있을 수도 있고,
다른 데이터에는 address 필드가 없을 수도 있고,
스키마 구조에 제한받지 않는 유연한 성격을 갖고 있기 때문에
특정 목적에서는 RDBMS에 비해 더 최적화되어 있는 장점이 있죠 ^^
그렇기 때문에 해당 필드의 value의 존재성 여부를 따져서 조건 조회를 할 수 있는데요
그 때 사용하는 것이 바로 이 $exists 키워드가 되겠습니다 ^^
그럼 해당 결과가 정말 맞는지 find() 함수에 동일한 조건을 넣어서 조회를 해볼까요?
count() 함수를 find() 함수로만 바꿔서
동일한 조건으로 도큐먼트를 조회해봤습니다
address 필드의 값이 온전히 존재하는 도큐먼트들이 조회되었고,
해당 갯수가 4개인 것을 확인할 수 있겠습니다 ^^
첫 번째 캡쳐 이미지와 동일한 결과를 출력합니다 ^^
첫 번째 샘플 코드에서는 count() 함수의 파라미터로 해당 조건을 바로 넣어줬는데요
상기 이미지와 같이 find() 연산 후 count() 함수를 적용하여,
조건 조회 된 해당 도큐먼트의 갯수를 카운팅해도 동일한 결과를 출력합니다 ^^!
2. 중복 제거하기 : distinct
컬렉션에 해당 도큐먼트들을 insertMany() 할 때
address 필드의 값이 존재하는 것도 있었고 존재하지 않는 것도 있었습니다
그리고 address 필드의 값에 대해 각각 상이했었는데요
distinct() 함수를 사용하면 해당 필드의 value에 대해
고유값들을 원소로 갖는 배열의 형태로 출력해줍니다 ^^
즉, 중복을 제거하고 고유값들을 조회하는 명령어라고 이해하시면 되겠습니다!
3. 특정 갯수만 조회하기 : limit
조건을 통해 출력한 결과에 대해 특정 갯수만 가져오고 싶을 때에는
limit() 함수를 사용해주시면 되겠습니다 ^^
상기 샘플 코드는 해당 컬렉션의 전체 데이터를 조회했는데요
그 중에서 3개의 데이터만 가져온 상황입니다 ^^
총 몇 개의 데이터가 있는지 하단의 이미지를 통해 한 번 확인해보겠습니다 !
find({}) 또는 find()의 형태로만 명령어를 입력하면
아무 조건이 없으므로 해당 컬렉션의 모든 도큐먼트를 조회하는 전체 조회가 되는데요 ^^
확인을 해보니 현재 users 컬렉션에는 5개의 도큐먼트가 존재하는 것을 확인할 수 있겠습니다
지금은 해당 기능 설명을 위한 샘플이므로 갯수가 몇 개 안 되는데요
특히 NoSQL은 특정하거나 예측할 수 없는 대규모 불특정 데이터들을 처리하는데에
특화되어 있는 데이터베이스 시스템이므로
실무에서는 처리하는(다루는) 데이터의 갯수가 상상을 초월합니다 ^^;;
유명한 상용서비스인 인스타그램이 하루에 처리하는 데이터의 건수가 억 단위라고 하죠 ^^;;
근데 만약에 조건 조회를 한다고 해도 그 출력되는 모든 데이터를 뽑아내면
적어도 몇 만, 몇 십만, 몇 백만의 데이터들일텐데 굳이 다 출력을 할 필요가 있을까요?
조건에 대해서 일부 몇 백, 몇 천 건의 데이터 등
일부만 살펴봐도 충분하겠죠 ^^
이런 상황과 마찬가지로 조회 결과에 대해
특정 갯수만 가져오고 싶다면 limit() 함수를 사용하면 되겠습니다 ^^!
이번 포스트에서는 $exists 키워드와 distinct(), limit()에 대해서 알아보았습니다
저번 포스트의 내용과 이번까지의 내용을 합하면
find()를 이용하여 조건 조회를 하는데에 충분한 실력이 갖춰졌다고 생각이 됩니다 ^^
물론 이 이외에도 더 많은 심도 있는 내용들이 있긴 합니다
하지만 정말 특별한 상황의 특이한 케이스를 제외하고는 이와 같은 내용들로도
충분히 데이터들을 조회하고 처리하는데에 무리 없으리라 생각합니다 ^^
다음 포스트에서는 배열에 관련된 내용과
배열을 대상으로 조건 조회할 때 이용할 수 있는 유용한 문법들에 대해서 살펴보겠습니다!
포스트 읽어주셔서 감사드리고 다음 포스트에서 찾아뵙겠습니다
'MongoDB > MongoDB 기본 CRUD' 카테고리의 다른 글
[MongoDB 기본 CRUD] 12. updateMany() 사용하여 데이터 갱신(수정)하기 (0) | 2024.08.14 |
---|---|
[MongoDB 기본 CRUD] 11. 배열과 $ all, $in, $nin 이용하여 조건 조회하기 (0) | 2024.08.14 |
[MongoDB 기본 CRUD] 9. 유용한 추가문법(2) - sort, count와 find(), findOne() 명령어 사용하여 조건 조회하기 (0) | 2024.08.14 |
[MongoDB 기본 CRUD] 8. 유용한 추가문법(1) - $ regex와 find() 명령어 사용하여 조건 조회하기 (0) | 2024.08.13 |
[MongoDB 기본 CRUD] 7. 논리 연산 문법 사용하여 find()로 조건 조회하기 (0) | 2024.08.13 |