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

Есть 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
26.10.2015, 17:16
    #39087207
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Лотерейная задача для MongoDB
Элементарно: $setIntersection (aggregation)
...
Рейтинг: 0 / 0
26.10.2015, 21:24
    #39087404
MongoGuest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Лотерейная задача для MongoDB
skyANAЭлементарно: $setIntersection (aggregation)

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

А есть что-то вроде Join ?
Выглядит, если честно, немного костыльно.Может Вы на SQL изобразите, что Вам надо?
...
Рейтинг: 0 / 0
27.10.2015, 12:51
    #39087904
MongoGuest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Лотерейная задача для MongoDB
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
27.10.2015, 19:49
    #39088404
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Лотерейная задача для MongoDB
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
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Лотерейная задача для MongoDB / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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