Nella mia app per appuntamenti, ho bisogno di compilare liste di uomini e donne in cui tutti gli uomini nella lista sono potenzialmente interessati a tutte le donne nella lista, e viceversa.
Cioè, in una lista di 10 uomini e 10 donne, ogni data donna corrisponde ai criteri stabiliti da tutti e 10 gli uomini e ogni dato uomo corrisponde ai criteri di tutte e 10 le donne. Non voglio uomini nel gruppo che non siano di interesse per tutte le donne, e viceversa.
I criteri sono molto semplici. Le proprietà per ogni persona sono:
- Età
- Interessi (array)
- Intervallo di età del partner desiderato
Esempio : se Man1
è descritto come
- 31
- Cucina, tennis, matematica
- 20, 31
Una donna 29
a cui piace il tennis e cerca un uomo tra x<=31
e y>=31
è una corrispondenza.
Ho pensato a come implementarlo, ma è diverso da qualsiasi semplice raccolta / manipolazione dei dati che abbia mai fatto. Il motivo è perché piuttosto che essere una singola query (cioè ottenere tutte le persone in cui gender=female
AND age>=low & age<=hight
ecc.) La query deve essere ricontrollata ogni volta che viene aggiunta una nuova persona. Cioè, ogni volta che un nuovo uomo o una donna vengono aggiunti alla lista, tutte le persone successive devono essere controllate anche contro di loro (perché non voglio aggiungere un uomo che una o più donne non trovino interessante).
Qualcuno ha qualche idea su una strategia per implementare questo algoritmo.
Per inciso, sto usando MongoDB, quindi, se per te è comodo, sarebbe bello parlare in questi termini.
Grazie mille in anticipo!