2015-02-13 12 views
10

Sto imparando Couchbase, ora in versione 3.xCouchbase - Quando dovrei usare N1QL vs Views?

mio dubbio è, quando dovrei usare un N1QL interrogazione vs un View ricerca?

E, ci sono differenze di prestazioni tra di loro?


Nota: Ho una situazione:

Un Secchio con due tipi di documenti per il mio viaggio App: percorso e Città

Un percorso doc detiene le informazioni sulla rotta di viaggio e una serie di città id ne fanno parte, quindi un altro documento contiene le informazioni della città (ogni città ha il proprio documento). Esempio:

//Bucket : "Traveling App" 

{ 
    "type" : "route" 
    "name" : "The Great Adventure", 
    "cities" : ["234", "h4345", "h42da"] 
} 

{ 
    "type" : "city", 
    "name" : "Little Town", 
    "UID" : "234" 
} 

Quando ho query per un determinato percorso itinerante, devo fare un N1QL query o un View ricerca?

perché avrei aprire prima il percorso doc, ottenere il città gamma di ottenere ogni Città doc.

E penso che questa architettura sarebbe la migliore, perché alcune rotte possono avere pochissime città e altre possono avere molte città.

risposta

6

N1QL sembra promettente per i vostri dati. Anche se è, come sottolinea un altro poster, nell'anteprima dello sviluppatore, vale la pena esplorare. È possibile nidificare traveling_app con se stessa per ottenere tutti i documenti della città 'annidati' con ogni percorso:

SELEZIONA r.name, c da traveling_app r NEST traveling_app c sui tasti r.cities;

Per ottenere dire i nomi delle città per una particolare rotta, si uniscono alla traveling_app con se stesso usando nomi di città del percorso come tasti:

SELEZIONA c.name come nome_citta DA traveling_app r ISCRIVITI traveling_app c ON CHIAVI r.cities WHERE r.name = "The Great Adventure";

Queste query funzioneranno allo stesso modo, indipendentemente dal numero di città di una rotta.

1

N1QL offre tutte le funzionalità necessarie per ottenere i percorsi giusti. N1QL può fare l'inestimabile degli array, filtrare per il percorso che stai cercando e poi UNIRE questi due tipi di documenti. Quindi, N1QL è la strada da percorrere.

+3

notare, però, N1QL non è ancora stato rilasciato. È nell'anteprima dello sviluppatore. –