I имеют следующую структуру документа:
{
name: "some user name",
cvs: [{
title: 'Cv title'
technologies: [
{
text: 'JavaScript',
main: true
},
{
text: "AngularJs",
main: true
}
]
}]
}
Когда я делаю следующее агрегацию (есть только один документ в БД):
db.users.aggregate([
{"$unwind": "$cvs"},
{"$unwind": "$cvs.technologies"},
{"$match": {
"cvs.isBlocked": false,
"cvs.moderated": true,
"cvs.isVisible": true,
"cvs.technologies.main": true
}
},
{"$project": {
"type": "$cvs.occupationType",
"proficiency": "$cvs.proficiencyLevel",
"_id": "$cvs._id",
"title": "$cvs.title",
"technologies": "$cvs.technologies.text",
}}
])
Я получаю массив из двух элементов (но это тот же документ) только потому, что есть две технологии, соответствующие
"cvs.technologies.main": true
[
{
"_id" : ObjectId("5629e813279b62fe075fbd4c"),
"type" : "Frontend",
"proficiency" : "Middle",
"title" : "Frontend developer",
"technologies" : "JavaScript",
},
{
"_id" : ObjectId("5629e813279b62fe075fbd4c"),
"type" : "Frontend",
"proficiency" : "Middle",
"title" : "Frontend developer",
"technologies" : "Ruby",
}
]
Как я могу получить этот результат ?:
[
{
"_id" : ObjectId("5629e813279b62fe075fbd4c"),
"type" : "Frontend",
"proficiency" : "Middle",
"title" : "Frontend developer",
"technologies" : ["JavaScript", "Ruby"],
}
]
Пожалуйста, покажите пример документ с такой же структурой, как и документы в вашей коллекции. Я думаю, что есть лучший способ сделать это. – styvane