Docs Menu
Docs Home
/
Relational Migrator
/ /

쿼리 변환

이 페이지의 내용

  • 이 작업에 대하여
  • 단계
  • 예시
  • 다음 단계
  • 자세히 알아보기

쿼리 변환기를 사용하여 내장된 애플리케이션 및 보고 SQL 쿼리를 MongoDB 구문으로 변환할 수 있습니다. 쿼리를 복사하여 쿼리 변환기에 붙여넣어 MongoDB 및 마이그레이션된 스키마에서 작동하도록 업데이트합니다.

  • 쿼리 변환기는 길거나 복잡한 쿼리, 트리거 또는 저장 프로시저를 변환할 수 없는 AI 기술을 사용합니다. 일부 쿼리는 올바르게 변환되지 않을 수 있고, 다른 쿼리는 전혀 변환되지 않을 수 있습니다.

  • 쿼리 변환기는 현재 프로젝트의 관계형 스키마, MongoDB 스키마 및 매핑 규칙을 사용하여 쿼리를 변환하는 방법을 결정합니다. 쿼리가 관계형 스키마에 없는 테이블을 참고하거나 MongoDB collection에 매핑되지 않은 테이블을 참고하는 경우 변환이 실패하거나 올바르지 않을 수 있습니다.

  • 변환된 쿼리, 트리거, 뷰 및 저장 프로시저는 프로젝트에 저장되며 프로젝트 가져오기 및 내보내기를 통해 유지됩니다.

  • SQL 쿼리는 40 000 텍스트 문자로 제한됩니다.

  • 프로덕션 환경에 배포하기 전에 항상 쿼리 변환기에서 생성된 코드를 검토하고 테스트합니다.

  • 왼쪽 Query Converter 창에서 이전 전환 내역을 볼 수 있습니다. 각 변환에는 변환 결과를 나타내는 아이콘이 있습니다. 객체 옆에 아이콘이 없으면 아직 변환이 시도되지 않은 것입니다.

    Icon
    설명
    Spinner
    이제 변환이 실행 중입니다.
    녹색 확인 표시
    전환에 성공했습니다.
    빨간색 느낌표
    마지막 시도에서 전환이 실패했습니다.
1

Code Generation 탭에서 Query Converter 창을 클릭합니다.

2
  • 프로젝트에서 쿼리 변환기를 처음 사용하는 경우 Paste SQL Query 을(를) 클릭합니다.

  • 프로젝트에서 이전에 SQL 코드를 변환한 적이 있는 경우 왼쪽 창에서 Queries 옆에 있는 + ADD 버튼을 클릭합니다.

3
  1. SQL 쿼리를 클립보드에 복사합니다.

    참고

    SQL Query 텍스트 필드에 복사된 쿼리는 SELECT 쿼리여야 합니다. 예: SELECT ID,ITEMNAME,PRICE FROM inventory.

  2. SQL Query 헤더 아래에서 SQL 쿼리를 텍스트 상자에 붙여넣습니다.

4
  1. Convert 버튼을 클릭합니다. SQL 코드가 변환될 때까지 기다립니다. 변환된 MongoDB 구문 코드가 Converted MongoDB Query 창에 표시됩니다.

    쿼리 변환기에 오류가 있는 경우 Converted MongoDB Query 창에서 세부 정보를 볼 수 있습니다.

    프로젝트 에서 쿼리의 이름을 바꾸거나 삭제 하려면 다음을 클릭합니다. SQL Query 창의 버튼을 클릭하고 또는 아이콘을 클릭합니다.

  2. 다음을 클릭합니다. 아이콘을 클릭하여 MongoDB 구문을 클립보드에 복사합니다.

  3. 생성된 MongoDB 구문을 테스트하고 유효성을 검사합니다.

    Filter 텍스트 상자를 사용하여 객체 이름과 SQL 구문을 기준으로 쿼리, 저장 프로시저, 트리거 및 뷰를 필터링할 수 있습니다.

5

변환된 쿼리에 대한 피드백을 제공해 향후 쿼리 전환을 개선하도록 지원합니다. 피드백을 제공하려면 변환된 쿼리 패널의 오른쪽 하단 모서리에서 또는 아이콘을 클릭합니다 . 그다음, 피드백 세부 정보를 제공하고 Submit을 클릭할 수 있습니다.

다음 표는 쿼리 변환기를 사용하여 MongoDB 구문으로 변환된 SQL 쿼리의 예를 보여줍니다. 변환된 쿼리의 구문과 구조는 프로젝트에서 사용된 매핑 규칙에 따라 달라집니다.

SQL Syntax
MongoDB 구문
SELECT *
FROM CUSTOMERS
async function query(db) {
return await db.collection('Customers').find({
}).toArray();
}
SELECT CONTACTNAME, CITY
FROM CUSTOMERS
WHERE CONTACTNAME LIKE '%SMITH%'
async function query(db) {
return await db.collection('Customers').find({
ContactName: { $regex: '.*SMITH.*' }
}, {
projection: { ContactName: 1, City: 1, _id: 0 }
}).toArray();
}
SELECT CUSTOMERID, CITY
FROM CUSTOMERS AS C
JOIN ORDERS AS O
ON C.CUSTOMERID = O.CUSTOMERID
WHERE CONTACTNAME IN('ABI','JIM')
const query = async (db) => {
return await db.collection('Customers').aggregate([
{
$lookup: {
from: 'Orders',
localField: 'CustomerId',
foreignField: 'CustomerId',
as: 'customer_orders'
}
},
{
$match: {
CONTACTNAME: { $in: ['ABI', 'JIM'] }
}
},
{
$project: {
CustomerId: 1,
City: 1
}
}
]).toArray();
};
  • 뷰 변환

  • 저장 프로시저 변환

  • SQL - MongoDB 매핑 차트

  • SQL-집계 매핑 차트

돌아가기

쿼리 변환기 사용