من SQL إلى NoSQL

الصق جملة SQL SELECT واحدة فيعيد المحوّل كتابتها بوصفها استعلام find() مكافئا في MongoDB. يطابق الأعمدة المحددة مع إسقاط، وجملة WHERE مع مرشّح، وORDER BY مع .sort()، وLIMIT مع .limit(). إنها أداة لإعادة كتابة الاستعلامات البسيطة، لا أداة ترحيل: فالوصلات JOIN وGROUP BY والتجميعات والاستعلامات الفرعية غير مدعومة.

كيف يعمل التحويل

  1. 1

    تحليل جملة SELECT

    تقرأ الأداة جملة واحدة بالصيغة `SELECT الأعمدة FROM الجدول [WHERE ...] [ORDER BY ...] [LIMIT n]`.

  2. 2

    مطابقة كل جملة

    تصبح الأعمدة إسقاطا `{ col: 1 }`، وتصبح `WHERE` مرشّحا، و`ORDER BY` تصبح `.sort()`، و`LIMIT` تصبح `.limit()`.

  3. 3

    ترجمة المعاملات

    تُطابَق معاملات المقارنة مع معاملات Mongo: `>` مع `$gt`، و`<` مع `$lt`، و`>=` مع `$gte`، و`<=` مع `$lte`، و`!=` مع `$ne`، و`=` مع مطابقة مباشرة.

  4. 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.

الأداة متاحة بلغات أخرى