Ordenar según la propiedad
Pregunta
¿Cómo puedo hacer algo como:
sort('object.property')
(el objeto se define como tipo 'json' en el modelo)
con línea de flotación?
Tenga en cuenta que estoy usando la última versión estable 0.9.~ que aún no tiene asociaciones.
Solución
Una prueba rápida mostró la sails-mongo
El adaptador permite ordenar los atributos JSON de forma inmediata (se accede de forma transparente a la base de datos mongo).
Primero creé un controlador y un modelo en blanco usando:
sails generate foo
Luego definí un data
propiedad con tipo json
en mi modelo:
module.exports = {
attributes: {
data: 'json'
}
};
Creé varios objetos haciendo un HTTP POST
con datos como este (aumenté el valor de clasificación):
{
"data": {
"sort": 1
}
}
Luego busqué mi colección usando esto. GET
pedido:
http://localhost:1337/foo?sort=data.sort+desc
lo que internamente resultará en una llamada como
Foo.find().sort('data.sort desc').exec(callback);
La respuesta del servidor ahora está ordenada por la propiedad dada:
[
{
"data": {
"sort": 3
},
"createdAt": "2014-04-13T09:35:49.734Z",
"updatedAt": "2014-04-13T09:35:49.734Z",
"id": "534a5a7553f1e98e09d1d86b"
},
{
"data": {
"sort": 2
},
"createdAt": "2014-04-13T09:35:45.814Z",
"updatedAt": "2014-04-13T09:35:45.814Z",
"id": "534a5a7153f1e98e09d1d86a"
},
{
"data": {
"sort": 1
},
"createdAt": "2014-04-13T09:35:41.958Z",
"updatedAt": "2014-04-13T09:35:41.958Z",
"id": "534a5a6d53f1e98e09d1d869"
}
]