Я документ структурирован следующим образом:Неожиданный результат при попытке отфильтровать поля в Монго дб
{
_id: "someid",
games: [{
slug: "world-of-warcraft",
class: 'shaman'
}, {
slug: 'starcraft-ii',
class: 'zerg'
}],
roles: {
'starcraft-ii': ['player'],
'world-of-warcraft': ['player']
}
}
Я пытаюсь фильтровать так, что только starcraft-ii
в массиве игры будет отображаться для всех игроков в роль player
в starcraft-ii
. Я делаю следующее:
function getUsersInGame(slug) {
return Users.find({
'games.slug': slug,
[`roles.${slug}`]: 'player'
}, {
fields: {
'games.$': 1,
'roles': 1
}
});
}
Однако это не соответствует в массиве игры, а вместо этого возвращает массив 1-элемент с world-of-warcraft
вместо этого.
Каким образом можно фильтровать этот массив в монго?
Документы говорят что и '$ elemMatch', и' $ 'вернут только первый элемент – corvid
Решено ли решение для вас? – Pio
увы, это не так, но я не знаю, почему, потому что документы определенно говорят, что это должно быть – corvid