【问题标题】:Mongoose Regex on Virtual Field虚拟字段上的猫鼬正则表达式
【发布时间】:2023-03-31 22:47:01
【问题描述】:

我想运行一个正则表达式以在我的用户架构中的虚拟字段上实现“LIKE”类型的功能。

以下语句适用于所有字段除了 *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);
        });

用户的猫鼬模式中的虚拟字段声明

//full name
UserSchema.virtual('fullName')
    .get(function() {
    return this.firstName + ' ' + this.lastName;
});

让 fullName 字段正则表达式正常工作的正确方法是什么?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    正如您已经说过(并向我们展示),fullName 是虚拟的,它位于应用层。无法查询。

    另请参阅:Sorting by virtual field in mongoDB (mongoose)

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2020-08-05
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多