Генерация структуры для агрегации

Итак, вот вопрос. Что я хочу сделать, это сгенерировать структуру данных с учетом набора входных значений.

Поскольку это представление на нескольких языках, давайте рассмотрим входной список как массив пар ключ / значение. И, следовательно, массив хэш, карта, словарь или любой другой термин, который плавает в вашей лодке. Я сохраню здесь все обозначения как JSON, надеясь, что это достаточно универсально для перевода / декодирования.

Итак, для ввода, скажем, у нас есть это:

[ { "4": 10 }, { "7": 9 }, { "90": 7 }, { "1": 8 } ] 

Может быть, немного излишним, но давайте придерживаться этого.

Таким образом, из этого ввода я хочу добраться до этой структуры. Я даю целую структуру, новажный часть это то, что возвращается за значение под"вес":

[
   { "$project": {
       "user_id": 1,
       "content": 1,
       "date": 1,
       "weight": { "$cond": [
           { "$eq": ["$user_id": 4] },
           10,
           { "$cond": [ 
               { "$eq": ["$user_id": 7] },
               9,
               { "$cond": [
                   { "$eq": ["$user_id": 90] },
                   7,
                   { "$cond": [
                       { "$eq": ["$user_id": 1] },
                       8, 
                       0
                   ]}
               ]}
           ]}
       ]}
   }}
]

Таким образом, решение, которое я ищу, заполняет содержание структуры для «веса», как показано в структуре, используявход как показано.

Да значения, которыевыглядит как числа в структуре должны быть числами, а не строками, поэтому независимо от языковой реализации, JSON-кодированная версиядолжен выглядят точно так же.

вперемежку, дайте мне лучший подход, чтобы получить тот же результат назначениявес значения на основе соответствияuser_id.

У кого-нибудь есть подход к этому?

Был бы рад любой реализации языка, поскольку я думаю, что было бы справедливо просто посмотреть, как структура может быть создана.

Я постараюсь добавить себя, но слава идет к хорошим реализациям.

Удачного кодирования.

Ответы на вопрос(2)

Ваш ответ на вопрос