在多个条件下使用RegExp

时间:2018-08-09 01:47:22

标签: javascript regex mongodb mongoose

我有此代码:

Playlist.aggregate([
    $match: {
        $or: [{genre: new RegExp(["Pop", "Indie"], 'i')}]
    }
]).exec(function(err, playlists){
    console.log(playlists);
});

问题在于它返回一个空数组,但是当我删除RegExp(Pop / Indie)中的条件之一时,它会正确返回。

我在RegExp中做错了什么?我该如何解决?

1 个答案:

答案 0 :(得分:2)

尝试在单个模式中使用交替:

Playlist.aggregate([
    $match: {
        $or: [{genre: new RegExp("Pop|Indie", 'i')}]
    }
]).exec(function(err, playlists){
    console.log(playlists);
});

但是,如果您希望模式保持不变,则可能不希望使用RegExp,而是要使用正则表达式文字。