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

MongoDB में $slice $filter परिणाम का उपयोग कैसे करें?

इसे करने का एक तरीका यह होगा (आपके डेटा की संरचना और आपके इंडेक्सिंग सेटअप के आधार पर $match चरण की कोई आवश्यकता नहीं है, हालांकि, प्रदर्शन कारणों से आप इसे अभी भी रखना चाहेंगे):

 db.item.aggregate([
    { "$project": { 
        "items": { 
            "$slice": [ 
                { "$filter": { 
                    "input": "$items",
                    "as": "item", 
                    "cond": { "$eq": [ "$$item.status", "active" ] } 
                }}, 
                -3,2 
            ] 
        } 
    }}
])

मुझे लगता है कि यह शायद बेहतर है, हालांकि, निम्न क्वेरी का उपयोग करना:

db.items.db.aggregate([
{
    $project: {
        "items": {
            "$filter": { 
                "input": "$items",
                "as": "item", 
                "cond": { "$eq": [ "$$item.status", "active" ] } 
            }
        } 
    }
}, {
    $project: {
        "items": {
            $slice: [
                {
                    $slice: [
                        "$items",
                        {
                            $subtract: [ { $size: "$items" }, 1 ] // length of items array minus one
                        } 
                    ]
                }, 2 // max two elements
            ]
        }
    }
}])

क्योंकि यह पहले अंतिम तत्व से छुटकारा दिलाएगा और फिर आउटपुट को दो वस्तुओं तक सीमित कर देगा जो कि 3 से कम "सक्रिय" तत्वों वाली स्थिति में शायद आप जितना चाहते हैं उससे अधिक है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. आप कुबेरनेट्स पर मोंगो प्रतिकृति सेट कैसे करते हैं?

  2. MongoDB दस्तावेज़ में विशेष वर्णों के साथ स्ट्रिंग खोजना

  3. MongoDB और स्प्रिंग बूट का उपयोग करके फ़ाइलें अपलोड करें और पुनर्प्राप्त करें

  4. find_by_sql मोंगोइड के बराबर?

  5. एक्सएमएल डेटा को मोंगोडब संग्रह में स्टोर करें