MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

jumlah $lookup hasil mongodb

Untuk mendapatkan data siswa yang lengkap Anda dapat melakukan hal seperti

db.student.aggregate(
        [
            {
            $lookup:
                {
                    from:"department",
                    localField:"branch",
                    foreignField:"_id",
                    as:"branch"
                }
            }
        ]
    )

Ini akan memberi Anda sesuatu seperti ini:

{
    "_id" : 1.0,
    "rollNumber" : 110.0,
    "name" : "Thor",
    "branch" : [ 
        {
            "_id" : 1.0,
            "name" : "CSE",
            "hod" : "abc"
        }
    ]
}

Untuk mendapatkan jumlah StudentData untuk setiap Departemen

db.getCollection('student').aggregate(
    [
        {
        $lookup:
            {
                from:"department",
                localField:"branch",
                foreignField:"_id",
                as:"branch"
            }
        },
        {
            $group:
            {
                _id:"$branch",
                "numOfStudent":{$sum:1},
                "listOfStudents":{$push:"$name"}
            }
        }
    ]
)

Ini akan memberi Anda sesuatu seperti ini:

{
    "_id" : [ 
        {
            "_id" : 2.0,
            "name" : "IT",
            "hod" : "xyz"
        }
    ],
    "numOfStudent" : 1.0,
    "listOfStudents" : [ 
        "Ironman2"
    ]
}
{
    "_id" : [ 
        {
            "_id" : 1.0,
            "name" : "CSE",
            "hod" : "abc"
        }
    ],
    "numOfStudent" : 3.0,
    "listOfStudents" : [ 
        "Thor", 
        "Ironman", 
        "Ironman3"
    ]
}

Anda dapat mengubah $push:$name ke $push:$_id Jika Anda ingin menyimpan ID siswa dan bukan nama mereka.

EDIT Dapatkan hasil serupa menggunakan koleksi "Departemen":

db.department.aggregate([
{
    $lookup:
                {
                    from:"student",
                    localField:"students",
                    foreignField:"_id",
                    as:"studentsDetails"
                }
},
{
    $project:{
            _id:0,
            name:"$name",
            hod:"$hod",
            numOfStudents:{$size:"$studentsDetails"},
            students:"$studentsDetails"
        }
}
])

Ini akan memberi Anda sesuatu seperti ini:

{
    "name" : "CSE",
    "hod" : "abc",
    "numOfStudents" : 2,
    "students" : [ 
        {
            "_id" : 1.0,
            "rollNumber" : 110.0,
            "name" : "Thor",
            "branch" : 1.0
        }, 
        {
            "_id" : 3.0,
            "rollNumber" : 111.0,
            "name" : "Ironman2",
            "branch" : 2.0
        }
    ]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose mengisi kembali array kosong

  2. Bagaimana unhideIndex() Bekerja di MongoDB

  3. Bagaimana saya bisa melakukan pencarian bersyarat di pymongo?

  4. Tidak dapat menghubungkan Robomongo menggunakan gambar buruh pelabuhan MongoDB

  5. MongoDB setara dengan SQL COUNT GROUP BY