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

मोंगोडीबी में $ लुकअप परिणाम पर शर्त कैसे लागू करें?

आप "$ लुकअप" के बाद ऑब्जेक्ट विधि के साथ "$ मैच" का उपयोग नहीं कर सकते हैं, क्योंकि "$ लुकअप" का वापसी मूल्य सरणी मान हैं। बेहतर होगा कि आप "$अनविंड" फ़ंक्शन को देखने के बाद जोड़ें और फिर उसे समूहीकृत करें।

उदाहरण क्वेरी

 db
.album
.aggregate([
    {
        $lookup:{
            from:"photo",
            localField:"_id",
            foreignField:"album_id",
            as:"photo"
        }
     },
    {
        preserveNullAndEmptyArrays : true,
        path : "$photo"
    },
    {
        $match:{
            "photo.flag": 1
        }
     },
     {
        $group : {
            _id : {
                id : "$_id",
                album_name: "$album_name",
                album_description: "$album_description",
                emoji_id: "$emoji_id"
            },
            photo: {
                $push : "$photo"
            }
        }
     }
    {
         $lookup:{
            from:"emoji",
            localField:"_id.album_emoji",
            foreignField:"_id",
            as:"emoji"
         }
    },
    {
         $project:{
            album_name:"$album_name",
            album_description:"$album_description",
            emoji:"$emoji",
            photo:"$photo",
            total_photos: {$size: "$photo"}
         }
    }
])

या "$filter" का उपयोग करें।

db
.album
.aggregate([
    {
        $lookup:{
            from:"photo",
            localField:"_id",
            foreignField:"album_id",
            as:"photo"
        }
     },
    {
        $project: {
            id : "$_id",
            album_name: "$album_name",
            album_description: "$album_description",
            emoji_id: "$emoji_id",
            photo: {
                $filter : {
                    input: "$photo",
                    as : "photo_field",
                    cond : {
                        $eq: ["$$photo_field.flag",1]
                    }
                }
            }
        }
    },
    {
         $lookup:{
            from:"emoji",
            localField:"album_emoji",
            foreignField:"_id",
            as:"emoji"
         }
    },
    {
         $project:{
            album_name:"$album_name",
            album_description:"$album_description",
            emoji:"$emoji",
            photo:"$photo",
            total_photos: {$size: "$photo"}
         }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. तत्व की स्थिति के आधार पर mongoDB में सरणी तत्व को हटाना

  2. रिलेशनल डेटाबेस में मल्टी-वैल्यू फ़ील्ड एक बुरा विचार क्यों है

  3. मोंगोडब और एमएएमपी

  4. Node.JS चर के सेट होने की प्रतीक्षा कर रहा है

  5. MongoDB:$ या एक पूर्ण-पाठ खोज और एक $in