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

स्प्रिंग डेटा मोंगोडब एप्लिकेशन डिज़ाइन और डेटा एकत्रीकरण

जब भी स्प्रिंग डेटा मोंगो में एक एग्रीगेशन ऑपरेशन की कमी होती है ($addFields को पुन:पेश करने के लिए) , $redact ...), एक वर्कअराउंड (कुछ लोग त्वरित और गंदा समाधान कह सकते हैं) सीधे com.mongodb.client टूल का उपयोग करके कच्चे एकत्रीकरण को स्प्रिंग में पास करना है:

String collectionName = mongoTemplate.getCollectionName(Payment.class);
MongoCollection<Document> collection = mongoClient.getDatabase(mongoTemplate.getDb().getName()).getCollection(collectionName);

AggregateIterable<Document> ai = collection.aggregate(Arrays.asList(
    Document.parse(/* { "group" : { ... } } */)))

MongoCollection.aggregate() को List<Document> . के रूप में एग्रीगेशन पाइपलाइन पास किया गया है (वास्तव में List<? extends Bson> कच्चे रूप में जैसा कि ऊपर Document.parse() का उपयोग करके सुझाया गया है, और आप निश्चित रूप से new Document() का भी उपयोग कर सकते हैं इसे उचित ओओपी कोड की तरह दिखने के लिए। मैं कच्चे रूप का उपयोग तब करता हूं जब कच्चा एकत्रीकरण जटिल होता है या नेस्टेड दस्तावेज़ के लिए कई नेस्टेड घटक मेरे लिए बहुत अधिक क्रियात्मक होते हैं, लेकिन यह स्वाद का मामला है।

2020 अपडेट करें।

इसका उपयोग करें समाधान बजाय। इसके साथ, स्प्रिंग द्वारा प्रदान किए गए एग्रीगेशन ऑपरेशन और एक ही स्थान पर आपके अपने "रॉ" एग्रीगेशन चरणों का उपयोग करना आसान है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी:क्या शेड्यूलर (क्रोनजॉब) का अनुकरण करने के लिए चेंज स्ट्रीम के साथ टीटीएल घटनाओं को कैप्चर करना संभव है?

  2. मोंगोडब में बनाए गए रिकॉर्ड से 10 मिनट पहले कैसे प्राप्त करें?

  3. मोंगोडीबी स्थिर फाइल प्रदाता के रूप में?

  4. उल्का से MongoDB में अद्यतन फ़ंक्शन डालने से कैसे रोकें?

  5. क्या MongoDB ChangeStream ResumeToken विश्व स्तर पर अद्वितीय है?