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

विशिष्ट एम्बेडेड दस्तावेज़ ढूंढें और फ़ील्ड का उपयोग करके आगे विशिष्ट बनाएं

वांछित परिणाम प्राप्त करने के लिए आप MongoBD एकत्रीकरण का उपयोग कर सकते हैं (एक देखो लें ):

db.health.aggregate([
  {
    $sort: {
      "healths.effDate": 1
    }
  },
  {
    $group: {
      _id: "$healths.healthCd",
      healths: {
        $first: "$healths"
      }
    }
  },
  {
    $replaceRoot: {
      newRoot: "$healths"
    }
  }
])

MongoPlayground

स्प्रिंग बूट कार्यान्वयन

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

    @Autowired
    private MongoTemplate mongoTemplate;

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {

//      //If your operator is not available inside Aggregation or query is too complex, 
//      //use below code to write MongoDB shell code directly as JSON
//      new AggregationOperation() {
//
//          @Override
//          public Document toDocument(AggregationOperationContext context) {
//              return new Document("$group", 
//                  new Document("_id", "$healths.healthCd")
//                      .append("healths", new Document("$first", "$healths")));
//          }
//          
//      },

        Aggregation agg = Aggregation.newAggregation(
            Aggregation.sort(Direction.ASC, "healths.effDate"),
            Aggregation.group("healths.healthCd").first("healths").as("healths"),           
            Aggregation.replaceRoot("healths")
        );

        AggregationResults<Healths> healths = mongoTemplate.aggregate(agg, 
                mongoTemplate.getCollectionName(Health.class), Healths.class);
        for (Healths health : healths.getMappedResults()) {
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
            System.out.println(gson.toJson(health));
        }
    }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला एम्बेडेड दस्तावेज़ / दस्तावेज़अरे आईडी

  2. स्प्रिंग डेटा के साथ कैप्ड संग्रह कैसे बनाएं? - मोंगोडीबी

  3. MongoDB:ऑटो जेनरेट किए गए ऑब्जेक्ट आईडी के बजाय विशिष्ट आईडी वाले दस्तावेज़ डालें

  4. परिणामों को सीमित करने से पहले आप मोंगो को संग्रह को क्रमबद्ध करने के लिए कैसे कहते हैं?

  5. Node.js, MongoDB - एकाधिक दस्तावेज़ सम्मिलित/अपडेट करना और एकल प्रतिक्रिया भेजना