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

स्प्रिंग-डेटा का उपयोग करके MongoDB से यादृच्छिक दस्तावेज़

अपडेट करें:

स्प्रिंग डेटा के v2.0 से शुरू करके आप यह कर सकते हैं:

SampleOperation matchStage = Aggregation.sample(5);
Aggregation aggregation = Aggregation.newAggregation(sampleStage);
AggregationResults<OutType> output = mongoTemplate.aggregate(aggregation, "collectionName", OutType.class);

मूल उत्तर:

स्प्रिंग-मोंगो जैसी अमूर्त परतें हमेशा सर्वर द्वारा जारी सुविधाओं से पीछे रहने वाली हैं। इसलिए आप स्वयं पाइपलाइन चरण के लिए बीएसओएन दस्तावेज़ संरचना का निर्माण करने के लिए सर्वोत्तम हैं।

एक कस्टम वर्ग में लागू करें:

public class CustomAggregationOperation implements AggregationOperation {
    private DBObject operation;

    public CustomAggregationOperation (DBObject operation) {
        this.operation = operation;
    }

    @Override
    public DBObject toDBObject(AggregationOperationContext context) {
        return context.getMappedObject(operation);
    }
}

और फिर अपने कोड में उपयोग करें:

Aggregation aggregation = newAggregation(
    new CutomAggregationOperation(
        new BasicDBObject(
            "$sample",
            new BasicDBObject( "size", 15 )
        )
    )
);

चूंकि यह AggregationOperation को लागू करता है यह मौजूदा पाइपलाइन संचालन सहायक विधियों के साथ अच्छी तरह से काम करता है। यानी:

Aggregation aggregation = newAggregation(
    // custom pipeline stage
    new CutomAggregationOperation(
        new BasicDBObject(
            "$sample",
            new BasicDBObject( "size", 15 )
        )
    ),
    // Standard match pipeline stage
    match(
        Criteria.where("myDate")
            .gte(new Date(new Long("949384052490")))
            .lte(new Date(new Long("1448257684431")))
    )
);

तो फिर, दिन के अंत में सब कुछ सिर्फ एक बीएसओएन ऑब्जेक्ट है। यह सिर्फ एक इंटरफ़ेस रैपर होने की बात है ताकि स्प्रिंग-मोंगो में क्लास के तरीके परिणाम की व्याख्या करें और आपके परिभाषित बीएसओएन ऑब्जेक्ट को सही ढंग से प्राप्त करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो में उप-दस्तावेज़ व्यवस्थित करने का सबसे अच्छा तरीका?

  2. मोंगोडब को कैसे समूहित करें - नक्शा आउटपुट को कम करें?

  3. स्केलग्रिड ने कनाडा में MongoDB होस्टिंग सेवाओं की घोषणा की

  4. मोंगोडब 3.11 . के लिए Tokumx 1.5 से Percona सर्वर पर प्रवासन

  5. MongoDB और Robomongo:कनेक्ट नहीं हो सकता (प्रमाणीकरण)