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

एक दस्तावेज़ और उसके सभी उप-दस्तावेज़ों को क्वेरी करें जो मोंगोडब में एक शर्त से मेल खाते हैं (वसंत का उपयोग करके)

आपको स्प्रिंग मोंगो डेटा निर्भरता में प्रदान किए गए MongoTemplate का उपयोग करना होगा। वर्तमान रिलीज़ संस्करण में $filter के लिए कोई आउट ऑफ़ बॉक्स समर्थन नहीं है। AggressionExpression का उपयोग करें। परियोजना में प्रक्षेपण के नीचे शामिल करें। 1.8.5 स्प्रिंग मोंगो डेटा संस्करण का उपयोग करें।

Aggregation aggregation = newAggregation(
        match(Criteria.where("_id").is(1)),
        project( "_id", "sensorName", "samplePeriod").and(new AggregationExpression() {
            @Override
            public DBObject toDbObject(AggregationOperationContext aggregationOperationContext) {
                DBObject filter = new BasicDBObject("input", "$data").append("as", "result").append("cond",
                        new BasicDBObject("$and", Arrays.<Object> asList(new BasicDBObject("$gte", Arrays.<Object> asList("$$result.timestamp", 1483537204000L)),
                                new BasicDBObject("$lte", Arrays.<Object> asList("$$result.timestamp", 1483537214000L)))));
                return new BasicDBObject("$filter", filter);
            }
        }).as("data")
);

List<BasicDBObject> dbObjects = monoTemplate.aggregate(aggregation, "collectionname", BasicDBObject.class).getMappedResults();


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb एकाधिक सरणी आइटम द्वारा ढूंढें

  2. मोंगोडीबी $mul

  3. MongoDB सामान्यीकरण, विदेशी कुंजी और शामिल होना

  4. Mongodb 3.6.0-rc3 सरणी फ़िल्टर काम नहीं कर रहे हैं?

  5. समय के साथ दस्तावेज़ सम्मिलित करते समय डिफ़ॉल्ट तिथि निर्धारित करें। समय क्षेत्र