본문 바로가기
T./MongoDB

[AI]Enable Natural Language Querying

by IT Journeyman 2024. 9. 25.

TL;DR

MongoDB Compass에서 AI ​​Enabled(Natural Language) Query하는 방법입니다.


IT Journeyman

VScode에 copilot으로 코딩하는 것이 일상이 된 지금 좀 늦은 감이 있지만, MongoDB Compass(쿼리에 주로 사용하는 Tool)에서 자연어로 DB 조회문 생성(Natural Language Query)이 됩니다. 그것도 한국어로도 됩니다.

 

 

 

Table of Contents

 

1. ​​Enable AI Features in MongoDB Compass

2. AI ​​Enabled Query

2.1 전체 문서 개수는?

2-2. 영화평이 가장 많은 영화 제목과 영화 평 수를 보여줘

3. 비문(非文)으로 Aggregation Pipeline 생성

4. Community Support

4-1. Compass에서 접속한 DB의 Edition이 Community임을 확인

4-2. 사용자 평가가 높은 3개를 이름만 보여줘

 

1. ​​Enable AI Features in MongoDB Compass

  • 먼저 Setting >> Artificial Intelligence 메뉴에서 MongoDB Atlas와 연동을 해야 함
    • 첫 번째만 체크하고 아래 항목은 체크하지 않고 테스트를 수행Enable sending sample field values with query and aggregation generation requests. 
  • MongoDB Atlas는 물론 설치형 Enterprise인 “Enterprise Advanced”나 “Community”에서도 사용 가능함(4번 항목 참조)
  • 관련 매뉴얼 : Enable Natural Language Querying - MongoDB Compass

 

 

2. AI ​​Enabled Query

2.1 전체 문서 개수는?

sample_mflix > movies를 선택하고 Documents 탭에서

2-2. 영화평이 가장 많은 영화 제목과 영화 평 수를 보여줘

Aggregation 탭에서 

3. 비문(非文)으로 Aggregation Pipeline 생성

sample_mflix > movies를 선택하고 Aggregation 탭에서

“전체 2012년 영화 중에서 영화평이 많을 순서대로 3개만 장르별로 장르와 영화 개수만 보여줘”
일부러 문법이 틀린 비문(非文)을 만들어 질의를 해 보았음

 

  [

    {

      "$match": {

        "year": 2012

      }

    },

    {

      "$sort": {

        "num_mflix_comments": -1

      }

    },

    {

      "$group": {

        "_id": "$genres",

        "movieCount": {"$sum": 1},

        "topMovies": {"$push": "$$ROOT"}

      }

    },

    {

      "$project": {

        "genres": "$_id",

        "movieCount": 1,

        "topMovies": {"$slice": ["$topMovies", 3]}

      }

    },

    {

      "$unwind": "$genres"

    },

    {

      "$group": {

        "_id": "$genres",

        "movieCount": {"$sum": "$movieCount"}

      }

    },

    {

      "$project": {

        "_id": 0,

        "genre": "$_id",

        "movie_count": "$movieCount"

      }

    }

  ]

 

 

4. Community Support

4-1. Compass에서 접속한 DB의 Edition이 Community임을 확인 

4-2. 사용자 평가가 높은 3개를 이름만 보여줘

sample_airbnb.listingsAndReviews 에서