Comments (1)
Hi @bielcapanema, there currently isn't any built in support for sorting by array length, however you could try the following approach:
Add a property, "likesCount", to your collection (here we're calling the collection "comment"). In your model definition, add an update middleware function that updates "likesCount" to be the length of the "likes" array, whenever "likes" is updated. You can then sort by the "likesCount" property.
You can learn about middleware functions here
See the code below for an example:
'use strict';
const Q = require('q');
const RestHapi = require('rest-hapi');
module.exports = function (mongoose) {
var modelName = "comment";
var Types = mongoose.Schema.Types;
var Schema = new mongoose.Schema({
text: {
type: Types.String,
},
likes: {
type: [Types.ObjectId]
},
likesCount: {
type: Types.Number,
allowOnUpdate: false,
default: 0
}
}, { collection: modelName });
Schema.statics = {
collectionName: modelName,
routeOptions: {
update: {
post: function (payload, result, Log) {
const Comment = mongoose.model('comment');
if (payload.likes) {
return RestHapi.update(Comment, result._id, { likesCount: payload.likes.length }, Log)
}
else {
return Q.when(result);
}
}
}
}
};
return Schema;
};
from rest-hapi.
Related Issues (20)
- fix all current security vulns
- update mongoose to latest
- 2.0.0 Release Notes
- config.enablePolicies = true dose not work on windows
- Issue with MrHorse.orPolicy in additional endpoint HOT 4
- Sort and search by many_one associations fields HOT 6
- Shouldn't pagination exclude deleted items? HOT 3
- [Question] I'm having trouble using $text or $term HOT 1
- update docs to mention when 'restCall' param is needed HOT 1
- Schema.Types.Mixed does not accept Arrays HOT 1
- [Bug /Question/Request?] config.loglevel HOT 3
- https://resthapi.com is down HOT 2
- How to use SSL with rest-hapi? HOT 2
- Add a release process HOT 1
- refactor test npm scripts
- Error [ERR_REQUIRE_ESM]: Can't start demo project.
- Do you maintain this project anymore? HOT 1
- CreatedAt search with date range in listHandler HOT 3
- Added support for querying "createdAt" date range in listHandler HOT 1
- TODO: sorting through populate fields (Ex: sort users through role.name) HOT 16
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rest-hapi.