我想运行正则表达式以在我的用户架构中的虚拟字段上实现“LIKE”类型的功能。
以下语句适用于所有字段except *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);
});
User 的 mongoose 模式中的虚拟字段声明
//full name
UserSchema.virtual('fullName')
.get(function() {
return this.firstName + ' ' + this.lastName;
});
使全名字段正则表达式正常工作的正确方法是什么?
最佳答案
正如您已经说过(并向我们展示的),fullName
是一个虚拟的,它位于应用程序层。你不能查询它。
关于node.js - 虚拟字段上的 Mongoose 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944842/