您可以使用查询转换器将嵌入的应用和报告SQL查询转换为MongoDB语法。将您的查询复制并粘贴到查询转换器中,以更新它们以与MongoDB和迁移的架构一起使用。
查询转换器使用AI技术,可能无法转换长或复杂的查询、触发器或存储过程。某些查询可能无法正确转换,或者根本无法转换。
查询转换器使用当前项目中的关系模式、MongoDB模式和映射规则来确定查询应该如何转换。如果查询引用了不在关系模式中的表,或者未映射到MongoDB集合中,转换可能会失败或错误。
转换后的查询、触发器、视图和存储过程将保存在您的项目中,并在项目导入和导出过程中保持持久。
SQL查询限制为40,000个文本字符。
将您的SQL查询复制到剪贴板。
注意
复制到SQL查询文本字段的查询必须是SELECT查询。例如SELECT ID,ITEMNAME,PRICE FROM inventory
.
在SQL查询标题下,将您的SQL查询粘贴到文本框中。
使用目标语言选择查询转换器要渲染的语言。
注意
如果您使用Java,也可以选择尽可能返回域对象。当选中时,如果查询仅在单个MongoDB集合上操作,则查询转换器将包含基于POJO类的强类型Java实体。
点击转换按钮。等待您的SQL代码被转换。转换后的MongoDB语法代码将在转换后的MongoDB查询面板中显示。
如果查询转换器出现错误,您可以在转换后的MongoDB查询面板中查看详细信息。
提示
要重命名或删除项目中的查询,请点击SQL查询面板上的按钮,然后选择或图标。
点击图标将MongoDB语法复制到您的剪贴板。
测试和验证生成的MongoDB语法。
提示
您可以使用过滤器文本框根据对象名称和SQL语法过滤查询、存储过程、触发器和视图。
对转换后的查询提供反馈以帮助改进未来的查询转换。要提供反馈,请点击转换查询面板右下角的或图标。然后,您可以提供反馈详细信息,并点击提交。
以下表格显示了使用查询转换器将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(); | }; |
|