MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मैं Apache Camel और MongoDB का उपयोग करके एक डायनामिक समान क्वेरी कैसे बना सकता हूँ?

शुरुआत के लिए, ऊपर दिया गया वह कथन संकलित नहीं होगा। यह मुझे एक अन्य प्रश्न में बताया गया था कि वर्तमान अपाचे कैमल मोंगोडीबी दस्तावेज में एक त्रुटि है और setHeader ऊपर की पंक्ति पढ़नी चाहिए:

.setHeader(MongoDbConstants.CRITERIA, constant(Filters.eq("name", "Raul Kripalani"))

जिस तरह से मैंने इसे समाप्त किया वह एक अनाम Expression creating बनाकर था :

import com.mongodb.client.model.Filters;
import com.mongodb.BasicDBObject;
import org.bson.conversions.Bson;

@Component
public class NotifyClientRoute extends RouteBuilder {
    public static final String NOTIFY_CLIENT_URI = "direct:notifyClient";

    @Override
    public void configure() throws Exception {

      from(NOTIFY_CLIENT_URI)
        .log("Determining which client gets the deletion request next for DR request '${header.drRequestId}'.")
        .setHeader(MongoDbConstants.CRITERIA, new Expression() {
            @Override
            public <T> T evaluate(Exchange exchange, Class<T> type) {
                String drRequestId = exchange.getIn().getHeader("drRequestId", String.class);

                Bson equalsClause = Filters.eq("drRequestId", drRequestId);

                // Alternatively:
                // Bson equalsClause = new BasicDBObject("drRequestId", new BasicDBObject("$eq", drRequestId));

                return exchange.getContext().getTypeConverter().convertTo(type, equalsClause);
            };
        })
        .to("mongodb:mongoClient?database=mydb&collection=mycollection&operation=findOneByQuery")
        .log("Query returned: '${body}'");
    }
}

अतिरिक्त नोट:मैं Expression . में उस रिटर्न स्टेटमेंट के साथ नहीं आया था . मैं टाइप त्रुटियों में भाग रहा था, और इसलिए मैंने देखा कि एक और अपाचे ऊंट क्या है Expression ऊंट पुस्तकालयों में शामिल कार्यान्वयन वापस आ रहे थे, और मुझे वह वापसी खंड मिला।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मुझे अपने play2 एप्लिकेशन में अपने नेस्टेड रिएक्टिवमोंगो कॉल की संरचना कैसे करनी चाहिए?

  2. MongoDB को दूरस्थ रूप से प्रबंधित करने के लिए युक्तियाँ

  3. क्वेरी के साथ प्रत्येक के लिए अंदर पुश करें ठीक से काम नहीं कर रहा है

  4. नेवला के साथ DbRef - नेवला-dbref या आबाद?

  5. MongoDB $gte एकत्रीकरण पाइपलाइन ऑपरेटर