虚拟领域的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)