Mongo Получить уникальное значение поля из большого запроса - PullRequest
0 голосов
/ 14 марта 2019

Чтобы заполнить кеш, мне нужно запросить все клубы, которые уже продали билеты за определенный промежуток времени.Поэтому я запрашиваю все проданные билеты и перебираю их все, чтобы найти список активных клубов за определенный период.Но это если тяжелые вычисления, которые выполняются почти каждую минуту на большом количестве билетов, это влияет на мой счет за инфраструктуру.Как мне сделать более эффективный запрос?

Документ

{   
    id: "32r34r34r3r434r4r", 
    creationDate: 18909894344,
    clubId: "9685ut56tu9t698t9",
    type:"TICKET"
}

Коллекция

...
{clubId: "3e32e4r43r43r43r4",...},
{clubId: "3e32e4r43r43r43r4",...},
{clubId: "5t89u54u895tu95t8",...},
{clubId: "6t68ut986ut986ut9",...},
....

Мне нужно получить

[
"3e32e4r43r43r43r4"
"5t89u54u895tu95t8"
"6t68ut986ut986ut9"
]

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Можете ли вы попробовать с этим

db.collection.aggregate([
{
$group:{
    _id:null,
    clubIds:{$addToSet:"$clubId"}
    }
}
])
0 голосов
/ 14 марта 2019

Вы можете передать запрос на distinct, чтобы сделать это:

db.collection.distinct('clubId', query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...