1
我有一种情况,我想根据某些单词的出现次数从mongodb中定义我自己的函数对数据进行排序。在猫鼬上定义自定义排序功能
例如,我有这样的模式:
const RecipeSchema = mongoose.Schema({
Title: { type: String },
Content: { type: String },
PublishDate: { type: Date },
});
这些值:
Title: 'Chocolate Cake',
Title: 'Naked Cake',
Title: 'Fruit Cake',
Title: 'Beef'
所以,当我查询 “裸蛋糕”,我想这样的
结果Title: 'Naked Cake', // 1, because have the two words
Title: 'Chocolate Cake', // 2 because have just one word
Title: 'Fruit Cake', // 3 because have just one word
// beef has no match word
今天我有这个查询功能:
Recipe
.find()
.where({ Title: GetQueryExpression(value)})
.sort({ PublishDate: -1 })
.exec(callback);
而且GetQueryExpression功能是:
function GetQueryExpression(value){
var terms = value.split(' ');
var regexString = "";
for (var i = 0; i < terms.length; i++)
regexString += terms[i] + '|';
regexString = regexString.substr(0, regexString.length - 2);
var result = new RegExp(regexString, 'ig');
return result;
}
也有人有一些想法如何实现这一排序,couting的话!?发生