0

我正在尝试使用正则表达式从 mongodb 获取结果。例如,在搜索用户名amitverma时,如果我在搜索框中输入,我希望能够得到该结果amit

我在互联网上搜索了一个解决方案,每个人似乎都通过编写如下代码让它工作:

var searchterm = req.body.name;
        collection.find(
            { "username": new RegExp('/.*' + searchterm + '.*/') },
            [ 'username', 'status' ], 
            function(e, docs){
                console.log(e);
                console.log(docs);
                res.writeHead(200, {'content-type': 'text/json' });
                res.write( JSON.stringify({ 'docs' : docs }) );
                res.end('\n');
            }
        );

我仍然无法让它工作。它给了我一个空数组。另外,在替换为 之后,我什{username: searchterm}{ "username": new RegExp('/.*' + searchterm + '.*/') }无法得到字符串的结果,amitverma这意味着这个正则表达式失败了。

4

1 回答 1

0

尝试从RegExp()构造函数中删除斜线:

{ "username": new RegExp('.*' + searchterm + '.*') },

斜杠不应该在那里,除非您正在搜索两个文字正斜杠。

于 2013-10-08T13:24:51.460 回答