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