Итак, у меня есть две модели мангуста:Сортировка по длине массива, если он не заполнен в модели
User: {
name: String,
..........
locations: []
}
Location: {
title: String,
.............
owner: {
type: Schema.Types.ObjectId,
ref: 'User'
}
}
моих подстановки функция в узле, для пользователя это что-то вроде:
api.find = function(filter, sort, skip, limit){
var callback = arguments[arguments.length - 1];
filter = treatFilter(filter);
sort = treatSort(sort);
if(callback && typeof callback === 'function'){
User.find(filter).sort(sort).skip(skip).limit(limit).exec(function(err, users){
if(users.length === 0){
callback(err, users);
}
for(var i = 0, complete = 0; i < users.length; i++){
(function(idx){
var user = users[idx];
var id = user.id;
Location.find({owner: id}, function(err, locations){
user.locations = locations;
if(++complete === users.length){
callback(err, users);
}
});
})(i);
}
});
}
};
что мой объект sort
должен быть таким, чтобы я мог сортировать по количеству мест?
Спасибо, если у вас есть какие-либо сомнения, я буду рад объяснить свой код
хмм, спасибо. Я думал об этом, но это waaaay, чтобы раздражать mantain. Я приму ваш ответ, если ничего не получится –
Нет лучшего способа. Поскольку вы используете mongoose, вы можете просто пересчитать массив до сохранения с помощью промежуточного программного обеспечения. На самом деле это неважно. –
Это хорошая идея. Я попробую –