Tri Basé sur la Propriété
Question
Comment puis-je faire quelque chose comme:
sort('object.property')
(l'objet est défini comme étant de type 'json' dans le modèle)
avec la ligne de Flottaison?
Notez que j'utilise la dernière version stable 0.9.~ qui n'ont pas d'associations encore.
La solution
Un test rapide a montré l' sails-mongo
l'adaptateur permet le tri de JSON attributs de la boîte (il est atteint de manière transparente à la base de données mongo).
J'ai d'abord créé un vide contrôleur et le modèle à l'aide de:
sails generate foo
Puis j'ai défini une data
propriété de type json
sur mon modèle:
module.exports = {
attributes: {
data: 'json'
}
};
J'ai créé plusieurs objets en faisant un HTTP POST
avec des données comme ceci (j'ai augmenté la valeur de tri):
{
"data": {
"sort": 1
}
}
Par la suite, je l'ai récupéré ma collection à l'aide de cette GET
demande:
http://localhost:1337/foo?sort=data.sort+desc
ce qui va à l'interne suite à un appel comme
Foo.find().sort('data.sort desc').exec(callback);
La réponse du serveur est maintenant triée par la propriété donnée:
[
{
"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"
}
]