Java 将MongoDB查询格式转换为SQL查询

Java 将MongoDB查询格式转换为SQL查询,java,sql,json,mongodb,Java,Sql,Json,Mongodb,我需要做的是将JSON字符串中的MongoDB查询格式(左侧=>)转换为相应的SQLqueryWHERE子句(右侧=>) {status:“D”}`**=>***`WHERE status=“D” {status:{$in:[“A”,“D”]}**=>**其中status in(“A”,“D”) {$or:[{status:{A},{qty:{$lt:30}]}**=>**其中status=“A”或qty**其中status=“A”和qty

我需要做的是将
JSON
字符串中的
MongoDB
查询格式(左侧=>)转换为相应的
SQL
query
WHERE
子句(右侧=>)

{status:“D”}`**=>***`WHERE status=“D”
{status:{$in:[“A”,“D”]}**=>**其中status in(“A”,“D”)
{$or:[{status:{A},{qty:{$lt:30}]}**=>**其中status=“A”或qty<30
{$and:[{status:{A},{qty:{$lt:30}]}**=>**其中status=“A”和qty<30

你能告诉我任何我可以使用的框架/库吗?Projetc是用
Java
语言编写的。

您可以尝试为此设计的npm包

根据您的问题调整文档:

var mongoToSqlConverter = require("mongo-to-sql-converter")

const MongoDBQuery = "db.user.find({ $or: [ { status: 'A' }, { qty: { $lt: 30 } } ] });"

const SQLQuery = mongoToSqlConverter.convertToSQL(MongoDBQuery, true)

console.log(SQLQuery)
将上述内容放入脚本中并在终端中与节点一起运行会导致

✗ node mongo.js 

SELECT * FROM user WHERE (status = 'A' OR qty < 30);
✗ node mongo.js
从用户处选择*(状态='A'或数量<30);

这似乎就是您所追求的。

framework/library将MongoDB转换为SQL?我不确定我是否正确理解了您的问题。最好学习如何在MongoDB中编写查询。此转换器仅包含非常基本的功能。像
不在
=任何
所有
或正则表达式之类的东西都不会被转换。解决方案涵盖了问题中提供的示例。@forgetso-它与Java一起工作吗?不。有一些库可以让节点代码与Java一起工作(例如),或者您可以将代码移植到Java,因为它们非常有用。
✗ node mongo.js 

SELECT * FROM user WHERE (status = 'A' OR qty < 30);