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

कैसे केवल नेवला के साथ एक आईडी की पहली घटना वापस करने के लिए?

हम ऐसा करने के लिए एकत्रीकरण ढांचे का उपयोग कर सकते हैं। सबसे पहले हमें $sort की ज़रूरत है user . द्वारा और "_आईडी"। वहां से, हम फिर $group "उपयोगकर्ता" द्वारा और $last का उपयोग करें प्रत्येक उपयोगकर्ता के लिए अंतिम दस्तावेज़ वापस करने के लिए संचायक ऑपरेटर। ध्यान दें कि हम $first का भी उपयोग कर सकते हैं संचायक ऑपरेटर यदि हम अपने दस्तावेज़ों को अवरोही क्रम में क्रमबद्ध करते हैं, लेकिन आरोही क्रम में क्रमबद्ध करते हैं और $last का उपयोग करते हैं हमारी मंशा स्पष्ट करो।

db.collection.aggregate([
    { "$sort": { "user": 1, "_id": -1 } }, 
    { "$group": { 
        "_id": "$user", 
        "user": { "$last": "$$ROOT" } 
    }} 
])

जो उत्पादन करता है:

{
    "_id" : "fje93jrg4",
    "user" : {
        "_id" : 2,
        "user" : "fje93jrg4",
        "event" : null,
        "group" : null,
        "name" : "Bob",
        "text" : "Testing"
    }
}
{
    "_id" : "94fg844f",
    "user" : {
        "_id" : 1,
        "user" : "94fg844f",
        "event" : null,
        "group" : null,
        "name" : "Jake",
        "text" : "Hello world"
    }
}
{
    "_id" : null,
    "user" : {
        "_id" : 4,
        "user" : null,
        "event" : "d0j3n9fn3",
        "group" : null,
        "name" : "My Event",
        "text" : "Testing 2"
    }
}

हम एक $project जोड़ना चाह सकते हैं हमारी पाइपलाइन में लेकिन ऐसा करने से प्रदर्शन में गिरावट आएगी। हालांकि, यह वायर पर भेजे गए डेटा की मात्रा और क्लाइंट साइड पर दस्तावेज़ों को डीकोड करने के लिए उपयोग किए जाने वाले समय और मेमोरी दोनों को कम कर देगा यदि लौटाए गए दस्तावेज़ में सभी कुंजी/मूल्य जोड़े की आवश्यकता नहीं है।

$project मंच इस तरह दिखता है:

{ "$project": {
    "_id": "$user._id",
    "user": "$user.user",
    "event": "$user.event",
    "group": "$user.group",
    "name": "$user.name",
    "text": "$user.text"
}}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. महीने के हिसाब से समूह और गिनती

  2. मोंगोइंजिन सेव विधि बहिष्कृत है?

  3. rmongodb प्रमाणीकरण हमेशा विफल रहता है

  4. मोंगोडब में कुल लुकअप के बाद आईडी की गहराई से नेस्टेड सरणी कैसे पॉप्युलेट करें?

  5. LinkedHashMap से Json String में कनवर्ट करें