文档菜单
文档首页
/
关系型数据库迁移器
/ /

转换查询

本页内容

  • 关于此任务
  • 步骤
  • 示例
  • 下一步操作
  • 了解更多

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

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

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

  • 转换后的查询、触发器、视图和存储过程将保存在您的项目中,并在项目导入和导出过程中保持持久。

  • SQL查询限制为40,000个文本字符。

  • 在将代码部署到生产环境之前,始终要审查和测试查询转换器生成的代码。

  • 您可以在左侧查看之前转换的历史记录。查询转换器面板。每个转换都有一个图标表示转换的结果。如果某个对象旁边没有图标,则尚未尝试转换。

    图标
    描述
    旋转器
    转换正在执行。
    绿色勾号
    转换成功。
    红色感叹号
    上次尝试转换失败。
1

代码生成选项卡中,单击查询转换器面板。

2
  • 如果您第一次在项目中使用查询转换器,请点击粘贴SQL查询

  • 如果您之前在项目中已转换过SQL代码,请点击左侧面板中“查询”旁边的+ ADD按钮。

3
  1. 将您的SQL查询复制到剪贴板。

    注意

    复制到SQL查询文本字段的查询必须是SELECT查询。例如SELECT ID,ITEMNAME,PRICE FROM inventory.

  2. SQL查询标题下,将您的SQL查询粘贴到文本框中。

4

使用目标语言选择查询转换器要渲染的语言。

注意

如果您使用Java,也可以选择尽可能返回域对象。当选中时,如果查询仅在单个MongoDB集合上操作,则查询转换器将包含基于POJO类的强类型Java实体。

5
  1. 点击转换按钮。等待您的SQL代码被转换。转换后的MongoDB语法代码将在转换后的MongoDB查询面板中显示。

    如果查询转换器出现错误,您可以在转换后的MongoDB查询面板中查看详细信息。

    提示

    要重命名或删除项目中的查询,请点击SQL查询面板上的按钮,然后选择图标。

  2. 点击图标将MongoDB语法复制到您的剪贴板。

  3. 测试和验证生成的MongoDB语法。

    提示

    您可以使用过滤器文本框根据对象名称和SQL语法过滤查询、存储过程、触发器和视图。

6

对转换后的查询提供反馈以帮助改进未来的查询转换。要提供反馈,请点击转换查询面板右下角的图标。然后,您可以提供反馈详细信息,并点击提交

以下表格显示了使用查询转换器将SQL查询转换为MongoDB语法的示例。转换查询的语法和结构取决于项目中使用的映射规则。

SQL 语法
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到聚合映射表

返回

启用查询转换器