Mongodb 基于嵌套地图结构的Golang Building Mongo查询

Mongodb 基于嵌套地图结构的Golang Building Mongo查询,mongodb,go,do-while,Mongodb,Go,Do While,我有如下的Json结构 { "type":"LogicalExpression", "operator":"&&", "left":{ "type":"BinaryExpression", "operator":">", "left":{ "name":"stage3_num1", "type":"Identifier" }, "right":{ "value":50, "raw":"50"

我有如下的Json结构

{  
 "type":"LogicalExpression",
 "operator":"&&",
 "left":{  
   "type":"BinaryExpression",
  "operator":">",
  "left":{  
     "name":"stage3_num1",
     "type":"Identifier"
  },
  "right":{  
     "value":50,
     "raw":"50",
     "type":"Literal"
  }
 },
 "right":{  
  "type":"LogicalExpression",
  "operator":"||",
  "left":{  
     "type":"BinaryExpression",
     "operator":">",
     "left":{  
        "name":"stage3_num2",
        "type":"Identifier"
     },
     "right":{  
        "type":"Literal",
        "value":200,
        "raw":"200"
     }
  },
  "right":{  
     "type":"BinaryExpression",
     "operator":"<=",
     "left":{  
        "type":"Identifier",
        "name":"stage3_num3"
     },
     "right":{  
        "value":2000,
        "raw":"2000",
        "type":"Literal"
     }
   }
 }
}
其中sel是func-

func sel(查询映射[string]接口{})bson.M{
结果:=make(bson.M,len(查询))
mongoparam:=GetmongoParam(查询[“运算符”](字符串))
变量左字符串
var右接口{}
md,ok:=查询[“左”]。(映射[字符串]接口{})
如果可以的话{
如果md[“类型”]=“标识符”{
左=md[“名称”]。(字符串)
}
}
rd,ok:=查询[“右”]。(映射[字符串]接口{})
如果可以的话{
如果rd[“类型”]=“标识符”{
右=右[“名称”]
}否则{
右=右[“值”]
}
}
结果[左]=bson.M{mongoparam:right}
返回结果
}

我无法在嵌套映射中继续,也无法了解如何迭代,直到“type”为“LogicalPression”,并将查询附加到一起。

请告诉我们您尝试了什么,以及您遇到了什么具体问题。瞄准目标。