Frage

Wie kann ich so etwas tun:

sort('object.property')

(Objekt ist im Modell als Typ „json“ definiert)

mit Wasserlinie?

Beachten Sie, dass ich den neuesten stabilen Build 0.9.~ verwende, der noch keine Zuordnungen hat.

War es hilfreich?

Lösung

Ein kurzer Test zeigte das sails-mongo Der Adapter ermöglicht das standardmäßige Sortieren von JSON-Attributen (es wird transparent auf die Mongo-Datenbank zugegriffen).

Zuerst habe ich einen leeren Controller und ein Modell erstellt mit:

sails generate foo

Dann habe ich a definiert data Eigenschaft mit Typ json an meinem Modell:

module.exports = {
    attributes: {
        data: 'json'
    }
};

Ich habe mehrere Objekte erstellt, indem ich a HTTP POST mit Daten wie diesen (ich habe den Sortierwert erhöht):

{
    "data": {
        "sort": 1
    }
}

Anschließend habe ich damit meine Sammlung abgerufen GET Anfrage:

http://localhost:1337/foo?sort=data.sort+desc

was intern zu einem Anruf wie folgt führt

Foo.find().sort('data.sort desc').exec(callback);

Die Serverantwort ist nun nach der angegebenen Eigenschaft sortiert:

[
    {
        "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"
    }
]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top