¿Es posible ordenar datos usando ioRedis sin usar las funciones de js? Tengo esta especie de función get que se supone que ordena a los autores por su edad (año).
Cuando creo un autor, hago algo como esto:
http localhost:5000/authors id=1 name="name" lastname="lastname" year=1970
Necesito hacerlo usando JSON.stringify porque si no lo hago, debajo de la clave hay [object Object]
Luego analizo cada una de las cadenas, porque keys ven así:
[ '{"id":"2","name":"autor","lastname":"ch","year":"1998"}', '{"id":"5","name":"autor5","lastname":"ch","year":"2005"}', '{"id":"4","name":"autor4","lastname":"ch","year":"2002"}', '{"id":"3","name":"autor3","lastname":"ch","year":"1997"}' ]Mi código:
router.get("/", async (req, res) => { const keys = await client.smembers("authors") console.log(keys) const keysMapped = keys.map(key => JSON.parse(key)) const sorted = await client.sort(keysMapped.year) //console.log(typeof keysMapped) //console.log(sorted) return res.send(sorted); }); router.post("/", async (req, res) => { try { const wynik = await client.hset("authors", JSON.stringify(req.body)) return res.send(req.body) } catch (err) { console.error(err) } }); La función de clasificación no parece funcionar, pero no sé cómo intentarlo de otra manera. Hay SORT en Redis, pero no sé si también está disponible en ioRedis o si debería usar Lodash o JS puro.