虚拟领域的mongoose正则expression式
我想运行一个正则expression式来实现我的用户架构中虚拟字段上的“LIKE”types的function。
以下语句适用于除 * fullName * 之外的所有字段
var searchString = stringUtils.removeMultipleSpaces(stringUtils.stripSpecialCharacters(req.param('searchString'))); var regex = new RegExp(searchString); var query = User.find().or([{ 'firstName' : { $regex: regex}}, { 'lastName': { $regex: regex }}, { 'userName': { $regex: regex }}, { 'fullName' : {$regex: regex }}]).sort('lastName'); query.select('firstName lastName userName fullName'); query.exec(function(err, users) { res.send(users); });
用户的mongoose模式中的虚拟字段声明
//full name UserSchema.virtual('fullName') .get(function() { return this.firstName + ' ' + this.lastName; });
获取fullName字段正则expression式正确工作的正确方法是什么?
正如你已经陈述(并向我们展示), fullName
是一个虚拟的,它在应用程序层。 你不能查询它。
另请参见: 按mongoDB中的虚拟字段进行sorting(mongoose)