couchdb obtener por valor, límite y orden por tiempo
Frecuentes
Visto 596 veces
0
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?
1 Respuestas
1
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas database view couchdb or haz tu propia pregunta.
¡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