Basado en una gran respuesta a mi previous question, he resuelto parcialmente un problema que tengo con CouchDB.Vistas de CouchDB: eliminar duplicados * y * ordenar por tiempo
Esto dio como resultado a new view.
Ahora, lo siguiente que tengo que hacer es eliminar los duplicados de esta vista mientras ordenar por fecha.
Por ejemplo, aquí es cómo puede ser que consultar ese punto de vista:
GET http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following?endkey=[%22c988a29740241c7d20fc7974be05ec54%22]&startkey=[%22c988a29740241c7d20fc7974be05ec54%22,{}]&descending=true&limit=3
Resultando en esto:
HTTP 200 http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following
http://scoates-test.couchone.com > $_.json.rows
[ { id: 'c988a29740241c7d20fc7974be067295'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T17:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be062ee8'
, owner: 'c988a29740241c7d20fc7974be05f67d'
}
}
, { id: 'c988a29740241c7d20fc7974be068278'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T15:00:00.000Z'
, 'durian'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be065115'
, owner: 'c988a29740241c7d20fc7974be060bb4'
}
}
, { id: 'c988a29740241c7d20fc7974be068026'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T14:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be063b6d'
, owner: 'c988a29740241c7d20fc7974be05ff71'
}
}
]
Como se puede ver, "clementina" muestra hasta dos veces.
Si cambio la vista para emitir el nombre de fruta/activo como la segunda clave (en lugar de la hora), puedo cambiar la profundidad de agrupación para contraerlas, pero eso no resuelve mi requisito de orden por tiempo . Del mismo modo, con la configuración anterior, puedo ordenar por tiempo, pero no puedo colapsar nombres de activos duplicados en filas individuales (para permitir, por ejemplo, 10 activos por página).
Lamentablemente, esta no es una pregunta fácil de explicar. Tal vez this chat transcript ayudará un poco.
Por favor ayuda. Me temo que lo que necesito hacer todavía no es posible.
S
Hola. Probé tu reducción, y no creo que resolvió mi problema: http: // scoates-test.couchone.com/_utils/database.html?follow/_design/asset/_view/by_userid_following_reduce (a pesar de tener la reducción, todavía obtengo "banana" dos veces para "c988a29740241c7d20fc7974be060bb4"). ¿Lo implementé incorrectamente? – scoates
Lo siento, mi primer ejemplo es incorrecto. Funciona solo para valores duplicados. Para las claves necesita usar listas. Cambié el ejemplo. Espero que resuelva tu problema. – Nek
Oh wow. No tenía idea de que estas funciones de lista siquiera existieran. Lo probaré y volveré y acepto si cumple mis necesidades (pero a esta altura ya se ve). ¡Gracias! – scoates