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

MongoDB में किसी सरणी फ़ील्ड में आइटम्स के संयोजन कैसे प्राप्त करें?

अगर मैं सही ढंग से समझ गया कि आप दिए गए उदाहरण से संबंध रखते हैं - यह प्रश्न आपकी समस्या का समाधान होना चाहिए:

db.collection.aggregate([{
            $unwind : "$keywords"
        }, {
            $lookup : {
                from : "collection",
                localField : "_id",
                foreignField : "_id",
                as : "items"
            }
        }, {
            $unwind : "$items"
        }, {
            $unwind : "$items.keywords"
        }, {
            $redact : {
                $cond : {
                    if  : {
                        $cmp : ["$keywords", "$items.keywords"]
                    },
                then : "$$DESCEND",
                else  : "$$PRUNE"
            }
        }
    }, {
        $group : {
            _id : {
                k1 : "$keywords",
                k2 : "$items.keywords",
            },
            items : {
                $sum : 0.5
            }
        }
    }, {
        $sort : {
            "_id" : 1
        }
    }, {
        $project : {
            _id : 1,
            items : 1,
            a : {
                $cond : {
                    if  : {
                        $eq : [{
                                $cmp : ["$_id.k1", "$_id.k2"]
                            }, 1]
                    },
                then : "$_id.k2",
                else  : "$_id.k1"
            }
        },
        b : {
            $cond : {
                if  : {
                    $eq : [{
                            $cmp : ["$_id.k1", "$_id.k2"]
                        }, -1]
                },
            then : "$_id.k2",
            else  : "$_id.k1"
        }
    },

}
}, {
    $group : {
        _id : {
            k1 : "$a",
            k2 : "$b",
        },
        items : {
            $sum : "$items"
        }
    }
}, {
    $project : {
        _id : 0,
        item1 : "$_id.k1",
        item2 : "$_id.k2",
        count : "$items"
    }
}
])
{
    "item1" : "cs",
    "item2" : "dd",
    "count" : 1.0
}
{
    "item1" : "cs",
    "item2" : "ee",
    "count" : 1.0
}
{
    "item1" : "cs",
    "item2" : "se",
    "count" : 2.0
}
{
    "item1" : "dd",
    "item2" : "se",
    "count" : 1.0
}
{
    "item1" : "ee",
    "item2" : "se",
    "count" : 1.0
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB संग्रह अद्यतन:डिफ़ॉल्ट मान वाले दस्तावेज़ को प्रारंभ करें

  2. उल्का में उपयोगकर्ता संग्रह में फ़ील्ड जोड़ने का उचित तरीका

  3. मैं मोंगोडब का पता कैसे लगा सकता हूं असफल घटना को फिर से जोड़ सकता हूं

  4. उप-दस्तावेज़ में सभी कुंजियों से कुल मान

  5. रीबूट के बाद टूटा हुआ मोंगो डॉकर सेटअप (रास्पबेरी पीआई पर यूनिफी नियंत्रक)