2017-09-30 9 views
2

同じデータを読んで私は、クエリのMongoDBのデータが、同じデータが複数回返され、春の統合 - MongoDBのインバウンドチャネルは

<bean id="mongoDBFactory" 
     class="org.springframework.data.mongodb.core.SimpleMongoDbFactory"> 
     <constructor-arg name="mongo"> 
      <bean class="com.mongodb.Mongo"> 
       <constructor-arg name="host" value="localhost" /> 
       <constructor-arg name="port" value="27017" /> 
      </bean> 
     </constructor-arg> 
     <constructor-arg name="databaseName" value="test" /> 
    </bean> 

    <int:channel id="controlChannel"/> 

    <int:control-bus input-channel="controlChannel"/> 

    <int-mongodb:inbound-channel-adapter 
     id="mongoInboundAdapter" channel="splittingChannel" auto-startup= "false" 
     query="{_id:1}" 
     collection-name="order" 
     mongodb-factory="mongoDBFactory"> 
     <int:poller fixed-rate="10000" max-messages-per-poll="1000"/> 
    </int-mongodb:inbound-channel-adapter> 

    <int:splitter input-channel="splittingChannel" output-channel="logger"/> 

    <int:logging-channel-adapter id="logger" level="WARN"/> 
ことができ、春の統合を使用するMongoDBからデータを照会する必要があります

制御チャネルを使用して開始し、停止します。 クエリが完了したら、インバウンドチャネルアダプタを停止する方法を教えてください。事前

答えて

0

おかげで私はあなたが変更または代わりに、アダプターを停止する文書を削除するためにtransaction-synchronization-factoryを使用することをお勧めします。詳細は、Reference Manualを参照してください。

+0

データベース内の文書を削除または変更する必要はありません。クエリに一致するすべての文書を読みたいだけです。@Artem Bilan – Vigneshwaran

+0

''を使用することを検討してください:https://docs.spring.io/spring-integration/docs/5.0.0.M6/reference/html/mongodb.html#mongodb-outbound-ゲートウェイ。あるいは単に 'MongoTemplate'を直接使ってください。ただし、同じトランザクション同期アプローチを使用してチャネルアダプタのポーリングを停止することはできます –