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

उप-दस्तावेज़ों को पुनः प्राप्त करें जो सरणी में अधिकतम मूल्य से मेल खाते हैं

ऐसा करने का सबसे अच्छा तरीका मोंगोडीबी 3.2 या नए में है। हमें $project की जरूरत है हमारे दस्तावेज़ और $filter का उपयोग करें ऑपरेटर हमारी स्थिति से मेल खाने वाले "topicInfo" सरणी का एक सबसेट वापस करने के लिए। और MongoDB3.2 के रूप में, हम $max का उपयोग कर सकते हैं $प्रोजेक्ट . में cond . में चरण ition अभिव्यक्ति और लौटाए गए मान पर तार्किक संचालन करें।

पाइपलाइन में अंतिम चरण $match चरण जहाँ आप $मौजूद है एलिमेंट क्वेरी ऑपरेटर और डॉट नोटेशन सरणी में पहले तत्व तक पहुँचने के लिए। यह वायर पर भेजे गए डेटा की मात्रा और क्लाइंट-साइड पर दस्तावेज़ों को डीकोड करने के लिए उपयोग किए जाने वाले समय और मेमोरी दोनों को भी कम करता है।

db.collection.aggregate([
    { "$project": { 
        "topicInfo": { 
            "$filter": { 
                "input": "$topicInfo", 
                "as": "t", 
                "cond": { 
                    "$and": [ 
                        { "$eq": [ "$$t.topic", "topic2"] }, 
                        { "$eq": [ "$$t.time", { "$max": "$topicInfo.time" } ] }
                    ] 
                } 
            } 
        } 
    }},
    { "$match": { "topicInfo.0": { "$exists": true } } }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:क्या दस्तावेज़ का आकार क्वेरी प्रदर्शन को प्रभावित करता है?

  2. उल्का MongoInternals के साथ एक दूरस्थ mongodb उदाहरण देखता है।RemoteCollectionDriver

  3. स्थानीय नेटवर्क के अंदर एक और मशीन मोंगोडब डेटाबेस कैसे कनेक्ट करें?

  4. MongoDB दो सरणियों से मूल्यों की गणना करें, क्रमबद्ध करें और सीमित करें

  5. Mongo . में नेस्टेड सूची अस्तित्व को क्वेरी करना