Node.js NODEJS mongodb如何在like查询中放置变量

Node.js NODEJS mongodb如何在like查询中放置变量,node.js,mongodb,Node.js,Mongodb,我需要将变量放入mongodb中,就像查询一样。这是我的密码 query={username: /req.params.data/} Users.find(query,function(err,users){ if(err){ console.log(err); } else{ console.log(users); } }); req.params.data是一个变量。我需要查找包含它的用户 req.params.data

我需要将变量放入mongodb中,就像查询一样。这是我的密码

  query={username: /req.params.data/}
  Users.find(query,function(err,users){
    if(err){
      console.log(err);

    }
    else{
      console.log(users);
    }
  });

req.params.data是一个变量。我需要查找包含它的用户

req.params.data
是一个变量,将包含从前端传递的用户名

 var userName = req.params.data; 

 User.findOne({ 'username': userName })
     .then(function(user){...})
     .catch(function(err){console.log(err)});
});
如果需要执行类似搜索,请使用

还是老办法


User.find(用户名:{$regex:“/^”+req.params.data+“/”})

那么,为什么要传递正则表达式呢?我是nodejs的新手。我用ajax将数据传递给控制器。我需要找到用户,到底是什么问题?你看到错误了吗?意外输出?请注意,您实际上并没有使用
req.params.data
的值;如果你不知道自己在做什么,最好不要使用像斜杠这样的随机语法。我知道,我试着输入随机文本,效果很好,而不是像这样输入查询={username:“/”+req.params.data+“/”},但出于某种原因,它不会把它当作类似的查询。你需要生成一个实际的正则表达式,不仅仅是一个看起来像一的字符串,而是使用值。尝试
newregexp(req.params.data)
。好的,我得到了这个,但我需要像查询一样将它放入内部。这并不能解决OP的问题;这仍然不是一个类似的查询。此外,解释您所做的更改(或坚持使用他们已经使用的回调)也很有帮助。@bzzz更新了答案
User.find(username: new RegExp(req.params.data));