Docs 菜单
Docs 主页
/
Relational Migrator
/ /

转换查询

在此页面上

  • 关于此任务
  • 步骤
  • 示例
  • 后续步骤
  • 了解详情

您可以使用查询转换器将嵌入式应用程序和报告 SQL 查询转换为 MongoDB 语法。 将查询复制并粘贴到查询转换器中,以更新它们以使用 MongoDB 和迁移的模式。

  • 查询转换器使用AI技术,该技术可能无法转换过长或复杂的查询、触发器或存储过程。 某些查询可能无法正确转换,而另一些查询则可能根本无法转换。

  • 查询转换器使用当前项目中的关系模式、MongoDB 模式和映射规则来确定应如何转换查询。 如果查询引用的表不在关系模式中或者未映射到 MongoDB collection,则转换可能会失败或不正确。

  • 转换的查询、Atlas Triggers、视图和存储过程保存在项目中,并在项目导入和导出过程中持续存在。

  • SQL查询仅限于40 , 000文本字符。

  • 在将查询转换器部署到生产环境之前,请务必检查并测试查询转换器生成的代码。

  • 您可以在左侧 Query Converter窗格中查看以前转换的历史记录。 每次转换都有一个指示转换结果的图标。 如果对象旁边没有 图标,则尚未尝试转换:

    Icon
    说明
    转圈
    现在正在执行转换。
    绿色复选标记
    转换成功。
    红色感叹号
    上次转换尝试失败。
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

下表显示了使用查询转换器将 SQL 查询转换为 MongoDB 语法的示例。 转换后的查询的语法和结构因项目中使用的映射规则而异:

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 聚合映射图表

后退

启用查询转换器