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.

Était-ce utile?

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"
    }
]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top