2011-01-23 16 views
7

que tienen un objeto JSON anidada para la clave estado a continuación:fechas selección CouchDB Vistas

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

Es una pequeña aplicación donde el usuario puede entrar en su/su estado. Quiero obtener el estado más reciente de él. ¿Este enfoque es bueno para tales aplicaciones, o tengo que tener una clave que defina el orden de clasificación?

¿Cuál es la mejor manera de obtener la fecha más reciente?

Gracias

Respuesta

14

Uso view collation y emitir una clave compleja.

Si primero desea ordenar por usuario, entonces por tiempo, use esto como clave. Si solo desea ordenar por tiempo, omita el nombre de usuario como clave.

Si está utilizando los valores de estilo Fecha:

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

Si utiliza un formato de fecha que ya es clasificable lexicográfico:

emit([doc.created_at, doc.username], doc); 
+0

Muchas gracias, justo lo que quería. – saint

+0

¿Crees que es un buen diseño para mantener los estados como este? – saint

+0

Probablemente prefiero agregar un nuevo documento para cada estado. Esto conducirá a más documentos, pero tiende a evitar conflictos y permite un diseño scalabale con estados "eventualmente consistentes". Cada documento debe contener, al menos, mensajes de estado, usuarios, tiempos y metadatos internos que quizás requiera. –

Cuestiones relacionadas