SQL в NoSQL
Вставьте один SQL-запрос SELECT, и конвертер перепишет его в эквивалентный запрос find() MongoDB. Он сопоставляет выбранные столбцы с проекцией, клаузу 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, не подбирает индексы и не оптимизирует производительность. Проверьте запрос на своих данных, прежде чем полагаться на него.
Часто задаваемые вопросы
Нет. Результат всегда представляет собой запрос find() MongoDB для оболочки mongosh или драйвера. Выбора цели для других документных хранилищ нет.
Нет. Для этого нужен конвейер агрегации MongoDB (aggregate([...])), который этот инструмент не создает. Он выдает только запросы find() с фильтром, проекцией, сортировкой и лимитом.
Нет. Читается только одна таблица FROM. Хранилища NoSQL предпочитают встраивание или ссылки, поэтому JOIN обычно означает изменение модели данных, а не переписывание запроса.
Нет. Преобразуются только запросы SELECT. Коллекции в MongoDB по умолчанию бессхемны, поэтому переводить определение таблицы не из чего.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Конвертер размера файлов
Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.
Инструмент доступен на других языках
- SQL → NoSQL [KO]
- SQL vers NoSQL [FR]
- من SQL إلى NoSQL [AR]
- Dari SQL ke NoSQL [ID]
- SQL naar NoSQL [NL]
- SQL till NoSQL [SV]
- SQL zu NoSQL [DE]
- SQL から NoSQL へ [JA]
- SQL na NoSQL [PL]
- การแปลง SQL เป็น NoSQL [TH]
- Từ SQL sang NoSQL [VI]
- SQL a NoSQL [ES]
- SQL para NoSQL [PT]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]