У меня есть список моно ObjectIds, которые мне нужно отобразить, назначить некоторые ответы (которые могут существовать или не существовать) для этого идентификатора, а затем сгенерировать среднее значение доступности на основе ответов. Например, у меня есть список ObjectIds, которые ссылаются на Users
:
["5d978d372f263f41cc624727", "5d978d372f263f41cc624728", "5d978d372f263f41cc624729"]
и агрегированный список Events
, который содержит поддокумент employeeResponses
, который, если они ответили, записывает свои_id
, response
и любое событие notes
:
[
{
...
employeeResponses: [
{
_id: "5d978d372f263f41cc624727",
response: "I want to work.",
notes: ""
},
{
_id: "5d978d372f263f41cc624728",
response: "Available to work.",
notes: ""
}
]
},
{
...
employeeResponses: [
{
_id: "5d978d372f263f41cc624727",
response: "I want to work.",
notes: ""
},
{
_id: "5d978d372f263f41cc624728",
response: "Prefer not to work.",
notes: ""
}
]
},
{
...
employeeResponses: [
{
_id: "5d978d372f263f41cc624727",
response: "Not available to work.",
notes: ""
},
{
_id: "5d978d372f263f41cc624729",
response: "Not available to work.",
notes: ""
},
]
}
]
Мне нужно назначить их ответ (или отсутствие ответа) их идентификатору в массиве responses
:
[
{
"_id": "5d978d372f263f41cc624727",
"responses": ["I want to work.", "I want to work.", "Not available to work."]
},
{
"_id": "5d978d372f263f41cc624728",
"responses": ["Available to work.", "Prefer not to work.", "No response."]
}
{
"_id": "5d978d372f263f41cc624729",
"responses": ["No response.", "No response.", "Not available to work."]
}
]
Затем, основываясь на их ответе, сгенерировать среднее значение доступности участника ( доступно : ["I want to work.", "Available to work"]
; недоступно : ["Prefer not to work.", "Not available to work.", "No response."]
):
[
{
"_id": "5d978d372f263f41cc624727",
"availability": 66
},
{
"_id": "5d978d372f263f41cc624728",
"availability": 33,
}
{
"_id": "5d978d372f263f41cc624729",
"availability": 0,
}
]
С помощью @mickl я могу агрегировать ответы для 1 ObjectId , но я изо всех сил пытаюсь расширить его до списка ObjectIds без сопоставления идентификаторов и агрегирования для пользователя -- который кажется очень неэффективным и дорогостоящим.