javascript - Establecer orden descendente de consulta de otra clase en Parse.com
(1)
Editar: solo ordena los resultados con array.sort
results = result.sort(function (a, b){
// decide with result is greater
// return + for stay for a > b
// return negative for b > a
})
Respuesta anterior: tomada de https://www.parse.com/docs/js/api/classes/Parse.Query.html :
Parse.Query addDescending (clave) Ordena los resultados en orden descendente con la clave dada, pero también puede agregar descripciones de clasificación secundarias sin sobrescribir _order.
Parámetros: key <(String | String | ... String> La tecla para ordenar por, que es una cadena de valores separados por comas, o una matriz de teclas, o varias teclas.
Devuelve: devuelve la consulta, por lo que puede encadenar esta llamada.
Parse.Query descendente (clave) Ordena los resultados en orden descendente con la clave dada.
Parámetros: key <(String | String | ... String> La tecla para ordenar por, que es una cadena de valores separados por comas, o una matriz de teclas, o varias teclas.
Devuelve: devuelve la consulta, por lo que puede encadenar esta llamada.
query.include("post.createdAt")
query.descending("post.createdAt")
Tengo este sencillo ejemplo en SDK Javascript de Parse.com en el sitio que estoy construyendo.
Las clases son las siguientes
_Estructura del usuario:
- objectId
- usuario
- contraseña
- nombre - cadena
Estructura de publicaciones:
objectId
postName - cadena
postMsg - cadena
postAuthor - Puntero <_Usuario> (Puntero a la clase de usuario)
Estructura de comentarios:
objectId
msg - cadena
post - Pointer <Posts> (Puntero a la clase Posts)
usuario - Puntero <_Usuario> (Puntero a clase de usuario)
Y hago esta consulta a la clase de comentarios para tomar todos los comentarios y también el nombre del autor y algunas otras cosas.
var Comments= Parse.Object.extend("Comments");
var query = new Parse.Query(Comments);
/*Get the Post''s Info*/
query.include("post");
/*Get the Post Author''s Info*/
query.include("post.postAuthor");
/*Get the Comment''s Author Info*/
query.include("user");
query.find().then(function(results){
/* Go Through Each Comment*/
var commentsArray = new Array();
for(i in results){
/* Set obj to current comment*/
var obj = results[i];
/* Get Post''s Name */
var postName = obj.get("post").get("postName");
/* Get Post''s Message */
var postMsg = obj.get("post").get("postMsg");
/* Get Post Author''s Name */
var authorName = obj.get("post").get("postAuthor").get("name");
/* Get Comment''s Message */
var commentMsg = obj.get("msg");
/* Get Comment''s Author*/
var commentAuthor = obj.get("user").get("name");
/* Let''s Put the Comment Information in an Array as an Object*/
commentsArray.push({
post:{
name: postName,
msg: postMsg
},
author: authorName,
comment: {
author: commentAuthor,
msg: commentMsg
}
});
}
})
Entonces mi pregunta es, en esta consulta, ¿cómo puedo hacer que el orden de los resultados descienda por "createdAt" de la clase POSTS, y no de la clase de comentarios que es la consulta principal?
¿Hay alguna forma de hacer eso? Algo como
query.descending("post.createdAt");
¿Alguna idea?