من 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 أو في استدعاء من المُشغِّل (driver).
مثال محلول
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 التضمين أو الإشارة، لذا تعني الوصلة عادة تغييرا في نموذج البيانات، لا إعادة كتابة للاستعلام.
لا. لا تُحوَّل سوى جمل 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.
أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
إزالة التشفير من كود جافا سكريبت مُصغَّر أو مُعبَّأ باستخدام إعادة تسمية المتغيرات، وفك ترميز السلاسل النصية ومصفوفات البيانات، بالإضافة إلى عكس تسطيح تدفق التحكم وتحسين هيكله.
مولد تراخيص
قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.
الأداة متاحة بلغات أخرى
- Từ SQL sang NoSQL [VI]
- SQL para NoSQL [PT]
- SQL から NoSQL へ [JA]
- SQL till NoSQL [SV]
- SQL a NoSQL [ES]
- SQL vers NoSQL [FR]
- SQL → NoSQL [KO]
- การแปลง SQL เป็น NoSQL [TH]
- SQL zu NoSQL [DE]
- SQL naar NoSQL [NL]
- Dari SQL ke NoSQL [ID]
- SQL na NoSQL [PL]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]