您可以使用查询转换器将嵌入式应用程序和报告 SQL 查询转换为 MongoDB 语法。 将查询复制并粘贴到查询转换器中,以更新它们以使用 MongoDB 和迁移的模式。
查询转换器使用AI技术,该技术可能无法转换过长或复杂的查询、触发器、数据包或存储过程。某些查询可能无法正确转换,而另一些查询则可能根本无法转换。有关更多信息,请参阅 AI和数据使用信息。
查询转换器使用当前项目中的关系模式、MongoDB 模式和映射规则来确定应如何转换查询。 如果查询引用的表不在关系模式中或者未映射到 MongoDB collection,则转换可能会失败或不正确。
转换的查询、触发器、视图、包和存储过程保存在项目中,并在项目导入和导出过程中持续存在。
SQL查询仅限于40 , 000文本字符。
在Code Generation标签页中,单击Query Converter窗格。
将 SQL 查询复制到剪贴板。
注意
复制到SQL Query文本字段中的查询必须是 SELECT 查询。 例如: SELECT ID,ITEMNAME,PRICE FROM inventory
。
在SQL Query标题下,将 SQL 查询粘贴到文本框中。
使用 Target Language 选择查询转换器呈现的语言。
注意
如果您使用Java ,还可以选择 Return a
domain object where possible。选中后,如果查询仅对单个MongoDB集合进行操作,则查询转换器将包含基于 POJO 类的强类型Java实体。
单击Convert按钮。 等待SQL代码转换。 转换后的MongoDB语法代码显示在Converted MongoDB Query窗格中。
如果查询转换器出现错误,您可以在 Converted MongoDB Query 窗格中查看详细信息。
提示
要重命名或删除项目中的查询,请单击SQL Query ,然后选择或图标。
单击图标将 MongoDB 语法复制到剪贴板。
测试并验证生成的 MongoDB 语法。
提示
您可以使用 Filter 文本框,根据对象名称和SQL语法过滤查询、存储过程、触发器、包和视图。
提供有关转换后的查询的反馈,以帮助改进未来的查询转换。要提供反馈,请单击转换后的查询面板右下角的或图标。然后,您可以提供反馈详细信息并单击 Submit。
下表显示了使用查询转换器将 SQL 查询转换为 MongoDB 语法的示例。 转换后的查询的语法和结构因项目中使用的映射规则而异:
SQL Syntax | MongoDB 语法 |
---|
| 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(); | }; |
|