Domanda

Come posso fare qualcosa come:

sort('object.property')

(l'oggetto è definito come tipo 'json' nel modello)

con linea di galleggiamento?

Nota che sto usando l'ultima build stabile 0.9. ~ che non ha ancora associazioni.

È stato utile?

Soluzione

Un test rapido ha mostrato che l'adattatore sails-mongo consente l'ordinamento degli attributi JSON fuori dalla scatola (è trasparente raggiunto al database del mongo).

Per prima cosa ho creato un controller e un modello in bianco usando:

sails generate foo
.

Quindi ho definito una proprietà data con tipo json sul mio modello:

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

Ho creato diversi oggetti facendo un HTTP POST con dati come questo (ho aumentato il valore di ordinamento):

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

Successivamente ho ricevuto la mia collezione usando questa richiesta GET:

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

che comporterà internamente in una chiamata come

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

La risposta del server è ora ordinata per la proprietà data:

[
    {
        "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"
    }
]
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top