MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

liczba $wynik wyszukiwania mongodb

Aby uzyskać pełne dane uczniów, możesz zrobić coś takiego, jak

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

To da ci coś takiego:

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

Aby uzyskać liczbę studentData dla każdego działu

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

To da ci coś takiego:

{
    "_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"
    ]
}

Możesz zmienić $push:$name do $push:$_id Jeśli chcesz przechowywać identyfikatory uczniów, a nie ich nazwiska.

EDYTUJ Uzyskaj podobny wynik, korzystając z kolekcji „Dział”:

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

To da ci coś takiego:

{
    "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. Czy istnieje składnik Polymer, który upraszcza komunikację z MongoDB?

  2. Meteor pochłania ogromną liczbę połączeń Mongo

  3. Jaki jest najlepszy sposób radzenia sobie z kluczami kompilacji podczas korzystania z Salat z MongoDB?

  4. Jak mogę pobrać zmodyfikowane dokumenty po operacji aktualizacji w mongodb za pomocą pymongo?

  5. Zapytanie objęte MongoDB nie jest w stanie spełnić zapytania z indeksu