Ordinamento di Date in CouchDB Vista

Ho nidificato oggetto JSON per la chiave stato di seguito:

{
"2011-01-19 09:41:00 AM": "Prototyping status application",
"2011-01-20 09:41:00 AM": "Playing with CouchDB"
}

È un po ‘ di applicazione in cui l’utente può inserire la sua/il suo stato. Voglio ottenere il più recente stato. È questo approccio buono per tali applicazioni, o devo avere una chiave che definisce l’ordinamento?

Qual è il modo migliore per ottenere il più recente data?

Grazie

InformationsquelleAutor saint | 2011-01-23

 

One Reply
  1. 15

    Utilizzare vista a confronto ed emettono un complesso di chiave.

    Se si desidera ordinare da utente, da tempo, utilizzare questo come chiave. Se solo si desidera ordinare da tempo, omettere il nome utente come chiave.

    Se si utilizza Data-valori di stile:

    emit([Date.parse(doc.created_at).getTime(), doc.username], doc);
    

    Se si utilizza un formato di data che è già ordinabile lexicographically:

    emit([doc.created_at, doc.username], doc);
    
    • Grazie mille, proprio quello che volevo.
    • Pensi che sia un buon design per mantenere gli stati come questo?
    • Mi sarebbe probabilmente preferisce l’aggiunta di un nuovo documento per ogni stato. Questo porterà a più documenti, ma tende a prevenire i conflitti e a consentire un scalabale design con eventuale coerente’ stati. Ogni documento deve contenere almeno il messaggio di stato, utente, il tempo e l’interno meta dati si potrebbe forse bisogno.
    • Ho un documento per ogni utente e una nested documento di stato all’interno del documento dell’utente. Sto ancora avendo problemi a recuperare solo il recente stato solo. Posso probabilmente trattare con esso a livello di applicazione, ma im cercando di imparare todo questo modo.
    • wiki.apache.org/couchdb/HTTP_view_API#Querying_Options – il limite è tuo amico (ordina per data decrescente e di prendere solo i primi n elementi).
    • come sarebbe l’url per la ricerca datetime e utente?

Lascia un commento