2015-04-22 7 views
5

Ho la seguente struttura JSON:citazioni extra aggiunti al @query

{ 
    "communication": { 
     "office": { 
     "email": "[email protected]" 
     }, 
     "private": { 
     "email": "[email protected]" 
     }, 
    } 
} 

voglio interrogare in modo dinamico per l'e-mail in base al tipo per esempio ufficio o privato. Quando uso il seguente comando:

@Query(value = "{ 'communication.?0.email' : ?1 }") 
Object findByEmail(String type, String email); 

Il

'communication.?0.email' 

viene convertito in

'communication."office".email' 

e Mongo non ha trovato una voce. Come posso evitare le quotazioni prima e dopo l'ufficio?

+0

Hai trovato una soluzione per questo? Anche io sono bloccato. – gtiwari333

+0

Purtroppo no, non era più necessario e ho smesso di indagare. – Sebastian

risposta

1

La risposta semplice è primavera mongo non supporta quello che stai cercando. Perché non stai passando tutto come parametro piuttosto che sotto.

@Query (valore = "{'comunicazione.?0.email':? 1}") Object findByEmail (tipo stringa, stringa di posta elettronica);

dove il valore e-mail dovrebbe

type= "communication." + type + ".email" 
+0

Ciò richiede che chiunque chiami l'oggetto findByEmail (tipo di stringa, e-mail stringa) conosca dettagliatamente la struttura e questo volevo evitare. – Sebastian