簡體   English   中英

虛擬場上的貓鼬正則表達式

[英]Mongoose Regex on Virtual Field

我想運行一個正則表達式來在我的用戶模式中的虛擬字段上實現“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);
        });

用戶的mongoose模式中的虛擬字段聲明

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

使fullName字段正則表達式正常工作的正確方法是什么?

正如您已經說過的(並向我們展示), fullName是虛擬的,它位於應用程序層。 你不能查詢它。

另請參閱: 按mongoDB中的虛擬字段排序(mongoose)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM