SQL → NoSQL
단일 SQL SELECT 문을 붙여넣으면 변환기가 이를 동등한 MongoDB find() 쿼리로 다시 씁니다. 선택한 열은 프로젝션으로, WHERE 절은 필터로, ORDER BY는 .sort()로, LIMIT는 .limit()로 매핑합니다. 이것은 단순한 문을 위한 쿼리 재작성 도구이며 마이그레이션 도구가 아닙니다. JOIN, GROUP BY, 집계, 서브쿼리는 지원하지 않습니다.
변환 동작 방식
-
1
SELECT 파싱
이 도구는 `SELECT 열 FROM 테이블 [WHERE ...] [ORDER BY ...] [LIMIT n]` 형태의 단일 문을 읽습니다.
-
2
각 절 매핑
열은 프로젝션 `{ col: 1 }`이 되고, `WHERE`는 필터가 되며, `ORDER BY`는 `.sort()`가, `LIMIT`는 `.limit()`가 됩니다.
-
3
연산자 변환
비교 연산자는 Mongo 연산자로 매핑됩니다. `>`는 `$gt`, `<`는 `$lt`, `>=`는 `$gte`, `<=`는 `$lte`, `!=`는 `$ne`, `=`는 직접 일치입니다.
-
4
출력 복사
생성된 `db.collection.find(...)` 줄은 mongosh 셸이나 드라이버 호출에 그대로 붙여넣을 수 있습니다.
예시
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
MongoDB 쿼리:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
변환기가 매핑하는 것
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
프로젝션 { a: 1, b: 1 } |
SELECT * |
모든 필드(빈 프로젝션) |
FROM users |
db.users.find(...) |
WHERE a = 5 |
{ a: 5 } |
WHERE a > 5 |
{ a: { $gt: 5 } } |
WHERE a >= 5 |
{ a: { $gte: 5 } } |
WHERE a != 5 |
{ a: { $ne: 5 } } |
WHERE a AND b |
{ a: ..., b: ... } |
WHERE a OR b |
{ $or: [ ... ] } |
ORDER BY a DESC |
.sort({ a: -1 }) |
LIMIT 10 |
.limit(10) |
지원하지 않는 것
- JOIN. 단일 테이블만 읽습니다. 컬렉션을 결합하려면
$lookup이나 비정규화된 데이터 모델이 필요하며, 이는 쿼리 재작성이 아니라 스키마 결정입니다. - GROUP BY와 집계.
COUNT,SUM,AVG,GROUP BY는 집계 파이프라인(db.collection.aggregate([...]))이 필요하며, 이 도구는 그것을 생성하지 않습니다. - 서브쿼리, CTE, 윈도우 함수. 모델을 다시 생각하거나 작업을 단계로 나누세요.
find()로는 표현할 수 없습니다. - IN, LIKE, BETWEEN.
WHERE파서는 비교 연산자=,>,<,>=,<=,!=,<>만 처리합니다. - AND와 OR 혼용.
WHERE절은 전체가AND이거나 전체가OR로 처리됩니다. 한 문에서 둘을 섞지 마세요. - INSERT, UPDATE, DELETE, CREATE TABLE.
SELECT만 변환됩니다.
출력에 관하여
결과는 항상 단일 db.collection.find(필터, 프로젝션) 줄이며, 선택적으로 .sort()와 .limit()가 뒤따릅니다. MongoDB 셸과 드라이버를 대상으로 합니다. Firestore나 Elasticsearch 쿼리를 생성하지 않고, 인덱스를 고르거나 성능을 최적화하지도 않습니다. 신뢰하고 사용하기 전에 자신의 데이터로 쿼리를 테스트하세요.
자주 묻는 질문
아니요. 출력은 항상 mongosh 셸이나 드라이버용 MongoDB find() 쿼리입니다. 다른 문서 저장소를 위한 대상 선택기는 없습니다.
아니요. 그것들은 이 도구가 생성하지 않는 MongoDB 집계 파이프라인(aggregate([...]))이 필요합니다. 이 도구는 필터, 프로젝션, 정렬, 제한이 있는 find() 쿼리만 생성합니다.
아니요. 단일 FROM 테이블만 읽습니다. NoSQL 저장소는 임베딩이나 참조를 선호하므로 JOIN은 보통 쿼리 재작성이 아니라 데이터 모델 변경을 의미합니다.
아니요. SELECT 문만 변환됩니다. MongoDB의 컬렉션은 기본적으로 스키마가 없으므로 변환할 테이블 정의가 없습니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
FPS 카운터
requestAnimationFrame으로 브라우저 FPS를 측정하세요. 스무딩, 최소/최대 프레임레이트, 경고 임계값, 선택형 그래프를 제공합니다. 업로드나 API 없이 로컬에서 실행됩니다.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
색상 틴트 생성기
기준 색의 밝은 틴트를 생성합니다. 디자인 시스템 토큰, 배경, 호버 상태를 위한 3-20단계 스케일.
이 도구는 다른 언어로도 제공됩니다
- SQL vers NoSQL [FR]
- من SQL إلى NoSQL [AR]
- Dari SQL ke NoSQL [ID]
- SQL till NoSQL [SV]
- SQL naar NoSQL [NL]
- การแปลง SQL เป็น NoSQL [TH]
- SQL na NoSQL [PL]
- SQL zu NoSQL [DE]
- SQL a NoSQL [ES]
- SQL から NoSQL へ [JA]
- Từ SQL sang NoSQL [VI]
- SQL para NoSQL [PT]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]