Мне нужно найти имя, dob, адрес и номер лицензии водителей с одинаковым номером лицензии. Это код, который я использую:
db.employee.aggregate([
{
$group: {
_id: {
"license": "$EMPLOYEE.licence"
},
count: {
$sum: 1
}
}
},
{
$match: {
count: {
"$gt": 1
}
}
},
{
$project: {
"EMPLOYEE.name": 1,
"EMPLOYEE.dob": 1,
"EMPLOYEE.address": 1,
"EMPLOYEE.licence": 1
}
}
])
Итак, он работает, но отображает только дублирующийся номер лицензии. Часть $ project не отображается. Что я сделал не так? Это образец данных, если вы хотите его протестировать:
db={
"employee": [
{
"_id": "6",
"EMPLOYEE": {
"e#": "6",
"name": "Michael Jones",
"dob": "05-OCT-65",
"address": "23 Waterloo Ave. Surry Hills, NSW 2502",
"hiredate": "12-JAN-93",
"position": "mechanic",
"licence": "7773",
"status": "ON_LEAVE",
"experience": "STANDARD",
"maintenances": [
{
"registration": "QRT834",
"time": "40",
"maintenance date": "12-JUN-99"
},
{
"registration": "QRT834",
"time": "40",
"maintenance date": "15-JUN-98"
},
{
"registration": "SYF777",
"time": "30",
"maintenance date": "01-AUG-98"
}
]
}
},
{
"_id": "9",
"EMPLOYEE": {
"e#": "9",
"name": "Alex Davis",
"dob": "15-AUG-93",
"address": "23 Waterloo Ave. Surry Hills, NSW 2502",
"hiredate": "12-JAN-93",
"position": "mechanic",
"licence": "9385",
"status": "ON_LEAVE",
"experience": "STANDARD",
"maintenances": [
{
"registration": "QRT834",
"time": "40",
"maintenance date": "30-JUN-02"
}
]
}
},
{
"_id": "23",
"EMPLOYEE": {
"e#": "23",
"name": "Rose Mathews",
"dob": "20-NOV-80",
"address": "23 Waterloo Ave. Surry Hills, NSW 2502",
"hiredate": "12-JAN-93",
"position": "mechanic",
"licence": "7773",
"status": "ON_LEAVE",
"experience": "STANDARD",
"maintenances": [
{
"registration": "QRT834",
"time": "40",
"maintenance date": "12-JUN-99"
},
{
"registration": "LUCY01",
"time": "200",
"maintenance date": "12-MAR-97"
},
{
"registration": "QRT834",
"time": "40",
"maintenance date": "30-JUN-02"
}
]
}
}
]
}
Я запускал его на этом веб-сайте: https://mongoplayground.net