转换视图
查询转换器采用 SQL来创建视图,并将其转换为等效的MQL 。 转换 SQL 代码时,查询转换器会考虑项目中定义的映射规则和模式转换。 有关转换过程的详细信息,请参阅转换视图示例。
关于此任务
查询转换器使用AI技术,该技术可能无法转换过长或复杂的查询、触发器或存储过程。 某些查询可能无法正确转换,而另一些查询则可能根本无法转换。
查询转换器使用当前项目中的关系模式、MongoDB 模式和映射规则来确定应如何转换查询。 如果查询引用的表不在关系模式中或者未映射到 MongoDB collection,则转换可能会失败或不正确。
转换的查询、Atlas Triggers、视图和存储过程保存在项目中,并在项目导入和导出过程中持续存在。
SQL查询仅限于40 , 000文本字符。
您可以在左侧 Query Converter窗格中查看以前转换的历史记录。 每次转换都有一个指示转换结果的图标。 如果对象旁边没有 图标,则尚未尝试转换:
Icon说明转圈现在正在执行转换。绿色复选标记转换成功。红色感叹号上次转换尝试失败。
开始之前
在将查询转换器部署到生产环境之前,请务必检查并测试查询转换器生成的代码。
步骤
示例
以下示例显示了来自示例 Northwind 数据库的 PostgreSQL 视图转换为 MongoDB 代码的情况。
如果要从查询创建 MongoDB 视图:
从聚合命令中复制聚合管道语法。
将聚合管道语法与createView shell 命令结合使用。
以下示例显示了转换为 MongoDB 的内连接视图:
SQL Syntax | MongoDB 语法 | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
在 MongoDB 中创建此视图的 shell 命令为:
db.createView("VW_OrderDetails", "orders", [ { $lookup: { from: "orderDetails", localField: "orderId", foreignField: "orderId", as: "orderDetails" }, }, { $unwind: "$orderDetails", }, { $project: { orderId: 1, customerId: 1, orderDate: 1, unitPrice: "$orderDetails.unitPrice", discount: "$orderDetails.discount" } } ] )
以下示例显示了转换为 MongoDB 的聚合分组依据视图:
SQL Syntax | MongoDB 语法 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
在 MongoDB 中创建此视图的 shell 命令为:
db.createView("VW_Customers", "customers", [ { $group: { _id: "$postal_code", customercount: { $sum: 1 } } }, { $sort: { customercount: -1 } } ] )