У меня есть коллекция MongoDB, Опросы с приведенной ниже схемеКак сделать агрегацию мангуста с вложенными документами массива
{
"options" : [
{
"_id" : Object Id,
"option" : String,
"votes" : [ Object Id ] // object ids of users who voted
},.....
]
}
Предположим, у меня есть USERID пользователя в узле JS, которому я хочу отправить это Информация. Моя задача состоит в том, чтобы
(1) включает дополнительное поле в вышеуказанном объекте JSON (который я получить с помощью мангуста).
в
"myVote": option._id
Мне нужно найти option._id, для которых
опции [someIndex] .votes содержит USERID
(2) изменить существующее поле «голосов» в каждом варианте для представления количества голосов по определенному варианту, как может видно в примере
Пример:
{
"options" : [
{
"_id" : 1,
"option" : "A",
"votes" : [ 1,2,3 ]
},
{
"_id" : 2,
"option" : "B",
"votes" : [ 5 ]
},
{
"_id" : 3,
"option" : "C",
"votes" : [ ]
}
]
}
Так что, если я пользователь с идентификатором пользователя = 5 хочет видеть опрос, то мне нужно послать следующую информацию:
Ожидаемый результат:
{
"my_vote" : 2, // user with id 5 voted on option with id 2
"options" : [
{
"_id" : 1,
"option" : "A",
"votes" : 3 //num of votes on option "A"
},
{
"_id" : 2,
"option" : "B",
"votes" : 1 //num of votes on option "B"
},
{
"_id" : 3,
"option" : "C",
"votes" : 0 //num of votes on option "C"
}
]
}
Хех? Что ты хочешь? Попробуйте добавить то, что вы пробовали, и ожидаемый результат. –
Пример и результат здесь выглядят весьма несовместимыми с исходной структурой, опубликованной. Также как «id = 5» даже играет в это как результат? Также принято и вежливо «тегировать» человека, комментирующего вас, запрашивая дополнительную информацию, когда вы решите добавить его. Помогает людям понять, что вы делаете. –
@ user3561036 sorry abt not tagging before, Ожидаемый результат на самом деле json, который я хочу отправить клиенту. Я думаю, что это может быть достигнуто с использованием структуры агрегации, но не в состоянии написать точный запрос, поскольку я новичок в этом –