I have Articles and Comments linked by a one-to-many association (an Article can have many Comments).
I would like to obtain the most commented articles so I proceed like that :
function mostCommentedArticles () {
var deferred = Q.defer();
Article.find().populate('comments').sort('comments ASC').exec(deferred.makeNodeResolver());
return deferred.promise;
}
BUT, I don't obtain the expected result : it doesn't sort at all (by Comments or anything else)
Is there an other way to proceed or is it an issue?
Thanks,
Pierre
Neither waterline (0.10.22) or sailsjs (v0.11) currently support this. You would need to process your return variable to reorder the data.
There is a ticket for this at https://github.com/balderdashy/waterline/issues/334
There is a difference between
and
The first one should return all the articles and comments with everything sorted by the comment_date. The second one should return all your articles with the attached comments where the comments are sorted by date.
The second one should work using mongodb.
This might point you in the right direction:
You can find more on the where operator here
But be aware that you for now won't be able to easily filter by both a model's native fields, and of populated fields - issue on hithub.
You pass it in the second parameter of
.populate()
like this: