couchdb obtener por valor, límite y orden por tiempo

Soy nuevo en CouchDB y estoy tratando de obtener las últimas 50 entradas más recientes de un usuario en una aplicación. Creé una vista que extrae los documentos para las entradas, y puedo usar el parámetro clave para obtener solo los documentos de un usuario en particular y la consulta de límite para obtener solo 50 entradas.

Sin embargo, me gustaría ordenar los documentos por un campo de "marca de tiempo" (que almacena la nueva fecha (). getTime () de cuando se realizó la entrada) para asegurarme de que solo obtengo las entradas más recientes. ¿Es esto posible en CouchDB y, de ser así, cómo?

preguntado el 10 de marzo de 12 a las 08:03

1 Respuestas

Probablemente pueda lograr esto (al menos en el caso de que no tenga fechas futuras en sus datos) emitiendo una clave más compleja como una matriz de la forma [nombre de usuario, fecha y hora]. Luego haga una vista que extraiga los documentos con una tecla de inicio como, por ejemplo, ['johndoe',1331388874195] en orden descendente y limite a 50. La fecha obviamente debe ser la actual. CouchDB colación se asegurará de que los resultados se ordenen primero por usuario y luego por fecha.

respondido 10 mar '12, 14:03

¡gracias! eso funcionó muy bien :) No sabía que puedes usar una matriz como clave, ¡muy útil saberlo! ¡¡Una vez mas, Gracias!! - Félix Mc

Ups, noté un pequeño error... también debes incluir una clave final de ['johndoe', 0] para evitar que couchdb devuelva publicaciones de nombres de usuario que comienzan con 'johndoe' como 'johndoe59'. - Félix Mc

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.