1

我正在尝试在 WSO2EI 中创建一个 mongo 数据服务。目前我有这个查询,它给我基于componentId的结果:

<query id="find" useConfig="MongoDB">
      <expression>collection.find("{componentId : #}")</expression>
      <result outputType="json">{&#xd;"Documents": {&#xd;"Document": [&#xd;{&#xd;"Data": "$document"&#xd;}&#xd;]&#xd;}&#xd;}</result>
      <param name="componentId" sqlType="STRING"/>
</query>

但是我需要动态输入参数才能根据我提供的参数名称找到不同的结果,如下所示:

<query id="find" useConfig="MongoDB">
      <expression>collection.find("{fieldName : #} : {fieldValue : #}")</expression>
      <result outputType="json">{&#xd;"Documents": {&#xd;"Document": [&#xd;{&#xd;"Data": "$document"&#xd;}&#xd;]&#xd;}&#xd;}</result>
      <param name="fieldName" sqlType="STRING"/>
<param name="fieldValue" sqlType="STRING"/>
</query>

这可能吗?还是我必须为每个参数创建多个查询?

谢谢

4

1 回答 1

2

是的,这是可能的!试试这个(为我工作)。

<query id="wesites_find_param" useConfig="mongo_ds">
      <expression>websites.find("{#: #}")</expression>
      <result element="Documents" rowName="Document" useColumnNumbers="true">
         <element column="document" name="Data" xsdType="string"/>
      </result>
      <param defaultValue="name" name="par1" sqlType="STRING"/>
      <param name="par2" sqlType="STRING"/>
   </query>
    <operation name="website_find_param_op">
      <call-query href="wesites_find_param">
         <with-param name="par1" query-param="par1"/>
         <with-param name="par2" query-param="par2"/>
      </call-query>
   </operation>
   <resource method="GET" path="/websitefind">
      <call-query href="wesites_find_param">
         <with-param name="par1" query-param="par1"/>
         <with-param name="par2" query-param="par2"/>
      </call-query>
   </resource>

例子,

  • 对于componentId:“pippo”使用?par1=componentId&par2=pippo
  • 对于组件名称:“proxy_hl7”使用?par1=componentName&par2=proxy_hl7
于 2018-03-13T15:08:32.990 回答