Получить последний элемент массива в нескольких вложенных полях в MongoDB - PullRequest
0 голосов
/ 29 августа 2018

У меня есть динамические вложенные поля, такие как user.com1.grp1.history, который history представляет собой набор хеш-таблиц.

Структура образца:

{
    _id: "123456",
    user: {
        com1: {
            grp1: {
                history: [
                    {
                         action: "something",
                         ...
                    }
                    ...
                ]
            },
            grp2: {
                history: [
                    {
                        action: "something else"
                        ...
                    }
                    ...
                ]
            },
         },
        com2: {
            ...
        }
    }
}

Когда я хочу получить последний элемент history для grp с, этот способ работает нормально:

db.user.find({}, {user.com1.grp1.history: {$slice: -1}})

Но проблема здесь в том, что com s и grp s являются динамическими именами, и каждый user содержит много динамических com s, а каждый com содержит много динамических grp s, и я не могу запрос вызова для каждого из них.

Так, как я могу получить последние предметы каждого com/grp history в этой ситуации?

...