Сортировка по виртуальному полю в mongoDB (Мангуст)
предположим, у меня есть некоторая схема, которая имеет виртуальное поле, подобное этому
var schema = new mongoose.Schema(
{
name: { type: String }
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
schema.virtual("name_length").get(function(){
return this.name.length;
});
в запросе можно ли сортировать результаты по виртуальному полю? Что-то вроде
schema.find().sort("name_length").limit(5).exec(function(docs){ ... });
когда я пытаюсь это сделать, результаты просто не сортируются...
1 ответов
вы не сможете сортировать по виртуальному полю, потому что они не хранятся в базе данных.
виртуальные атрибуты-это атрибуты, которые удобно иметь вокруг но которые не сохраняются в MongoDB.