SailsJS如何应用从另一个模型填充的实例方法和实例方法sorting?

嗨考虑这个例子

// surname_and_name: function(){ // return (this.name_last==null ? '' : this.name_last + ' ') + // (this.name_middle==null ? '': this.name_middle + ' ') + // (this.name_first==null ? '' : this.name_first + ' ') + // (this.name_prefix==null ? '' : this.name_prefix + ' ') + // (this.name_suffix==null ? '' : this.name_suffix); // }, toJSON: function() { var obj = this.toObject(); obj.surname_and_name = (obj.name_last==null ? '' : obj.name_last + ' ') + (obj.name_middle==null ? '': obj.name_middle + ' ') + (obj.name_first==null ? '' : obj.name_first + ' ') + (obj.name_prefix==null ? '' : obj.name_prefix + ' ') + (obj.name_suffix==null ? '' : obj.name_suffix); return obj; } 

我想查询和sorting“surname_and_name”计算字段。 我也试过评论的代码,我得到这个错误,方法

 co_user.find(sort : {surname_and_name: 'asc' }).exec(error,res) Error: ER_BAD_FIELD_ERROR: Unknown column 'co_user.surname_and_name' in 'order clause' 

从服务器发回模型数据时调用toJSON方法,而不是在查询过程中。 因此, surname_and_name属性在查询过程中不可用; 只有真实的模型属性可以用作查询参数。 如果这种sorting对您很重要,那么我build议为您的模型创build一个实际的surname_and_name属性,该属性在每次保存模型时都会自动计算,使用模型类的afterCreate()afterUpdate() 生命周期callback afterUpdate()