MongoJS在使用正则表达式搜索时不返回数据

Ale*_*sky 1 mongodb node.js mongojs

Node.js,mongojs,mongodb.我正在使用正则表达式搜索技能列表.这是我的服务器代码:

var nconf = require('nconf');
var db = require('mongojs').connect(nconf.get('mongolab:connection'), ['skills', 'users']);

app.get('/api/skill', function(req, res){
    console.log('searching for ' + req.query['q']);

    var query = '{name: /' + req.query['q'] + '/i}';
    console.log('query: ' + query);
    db.skills.find(query, function(err, data){
        console.log('returning ' + JSON.stringify(data));
        if(!err){
            res.writeHead(200, {'content-type': 'text/json' });
            res.write( JSON.stringify(data) );
            res.end('\n');
        }   
    });

});
Run Code Online (Sandbox Code Playgroud)

我的列表中有"asp.net"的值.控制台日志输出:

searching for .net
query: {name: /.net/i} 
returning []
Run Code Online (Sandbox Code Playgroud)

我使用MongoHub连接到同一个服务器/ db,在查询字段中粘贴语句,然后取回我的记录:

{
    "name": "asp.net",
    "description": "",
    "_id": {
        "$oid": "500b4aae14f7960e91000001"
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Joh*_*yHK 5

query必须是一个对象,而不是一个字符串.试试这个:

var query = {name: new RegExp(req.query['q'], 'i') };
Run Code Online (Sandbox Code Playgroud)