powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Лотерейная задача для MongoDB
6 сообщений из 6, страница 1 из 1
Лотерейная задача для MongoDB
    #39086990
MongoGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как решается данная задача на монго.

Есть 100 тыс документов (проданые лотерейные билеты)
следующего содержания

Код: c#
1.
{'name':'Petrov', 'filledNumbers':[12,33,18,16,4,8]}



Есть выиграшная комбинация для 6 из 36,
допустим 21,33,8,25,3,18

Нужно сделать выборку лотерейных билетов где совпало
3 числа, 4 числа, 5 чисел, 6 чисел.
...
Рейтинг: 0 / 0
Лотерейная задача для MongoDB
    #39087207
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Элементарно: $setIntersection (aggregation)
...
Рейтинг: 0 / 0
Лотерейная задача для MongoDB
    #39087404
MongoGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAЭлементарно: $setIntersection (aggregation)

А есть что-то вроде Join ?
Выглядит, если честно, немного костыльно.
...
Рейтинг: 0 / 0
Лотерейная задача для MongoDB
    #39087423
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MongoGuestskyANAЭлементарно: $setIntersection (aggregation)

А есть что-то вроде Join ?
Выглядит, если честно, немного костыльно.Может Вы на SQL изобразите, что Вам надо?
...
Рейтинг: 0 / 0
Лотерейная задача для MongoDB
    #39087904
MongoGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAMongoGuestпропущено...


А есть что-то вроде Join ?
Выглядит, если честно, немного костыльно.Может Вы на SQL изобразите, что Вам надо?

На SQL было бы так

Таблицы:
Код: sql
1.
2.
3.
Tickets (id, name)
Numbers(ticketID, number)
WinNumbers(number)



итого запрос

Код: sql
1.
2.
3.
4.
select n.ticketID, count(*) Hits
from Numbers n
inner join WinNumbers wn on n.Number = wn.Number
group by n.ticketID
...
Рейтинг: 0 / 0
Лотерейная задача для MongoDB
    #39088404
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MongoGuestskyANAпропущено...
Может Вы на SQL изобразите, что Вам надо?

На SQL было бы так

Таблицы:
Код: sql
1.
2.
3.
Tickets (id, name)
Numbers(ticketID, number)
WinNumbers(number)



итого запрос

Код: sql
1.
2.
3.
4.
select n.ticketID, count(*) Hits
from Numbers n
inner join WinNumbers wn on n.Number = wn.Number
group by n.ticketID

Ну всё верно... JOIN + группировка

Но в MongoDB нет JOIN-ов и Numbers у Вас embedded в Tickets, а для группировки используется aggregation framework.
Это нормальная практика, а не костыль.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Лотерейная задача для MongoDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]