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

स्प्रिंग मोंगो के साथ $stdDevSamp या $stdDevPop का उपयोग करें

"उपलब्ध नहीं" . के बीच एक अलग अंतर है और "कोई क्रियान्वित सहायक विधि नहीं" , और यही यहाँ का वास्तविक मामला है। सिर्फ इसलिए कि $stdDevSamp या $stdDevPop ऑपरेटरों, इसका मतलब यह नहीं है कि उनका उपयोग नहीं किया जा सकता है, जब तक कि आप निश्चित रूप से मोंगोडीबी 3.2 इंस्टेंस से कनेक्ट हो रहे हैं।

आपको वास्तव में AggregationOperation . का समर्थन करने वाली एक कस्टम क्लास की आवश्यकता है इंटरफ़ेस, जो DBObject . का उपयोग करके निर्माण की अनुमति देगा :

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 CustomAggregationOperation(
        new BasicDBObject("$sample", new BasicDBObject("size",100))
    ),
    new CustomAggregationOperation(
        new BasicDBObject(
            "$group",
            new BasicDBObject("_id",null)
                .append("ageStdDev",new BasicDBObject("$stdDevSamp","$age"))
        )
    )
);

और यह दस्तावेज़ीकरण उदाहरण के समतुल्य है :

db.users.aggregate(
   [
      { "$sample": { "size": 100 } },
      { "$group": { "_id": null, "ageStdDev": { "$stdDevSamp": "$age" } } }
   ]
)

AggregationOperation . के लिए एक इंटरफ़ेस के रूप में वर्ग आसानी से कार्यान्वित सहायकों के साथ घुलमिल जाता है:

Aggregation aggregation = newAggregation(
    // Using the match helper for the `$match` stage
    match(
        Criteria.where("age").gte(20).lte(50)
    ),
    // Mixed in with custom classes for the others
    new CustomAggregationOperation(
        new BasicDBObject("$sample", new BasicDBObject("size",100))
    ),
    new CustomAggregationOperation(
        new BasicDBObject(
            "$group",
            new BasicDBObject("_id",null)
                .append("ageStdDev",new BasicDBObject("$stdDevSamp","$age"))
        )
    )
);

तो आप अभी भी सुविधाओं का उपयोग कर सकते हैं, भले ही आपके लिए बीएसओएन ऑब्जेक्ट निर्माण को पूरा करने के लिए "सहायक में सहायक" न हो। आप बस निर्माण स्वयं करें।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js और mongodb के साथ टाइमआउट को संभालना

  2. Ubuntu पर Golang में Mongo Cloud mongodb डेटाबेस से कनेक्ट नहीं हो सकता

  3. मोंगो के बाहर के बराबर:हडूप में विकल्प कम करें

  4. स्प्रिंग डेटा के MongoTemplate और MongoRepository में क्या अंतर है?

  5. MongoDB - अपना स्वयं का SSL प्रमाणपत्र लाएं