我想传递一个对象到MongoClient的collection.find()方法,但我不想引号围绕值。如果我通过文字它按预期工作:如何使用不带引号的文本字符串创建对象?
cursor = collection.find({EmployeeName: {'$regex': /Jo/i}});
但是,如果我尝试建立一个对象,如:
var queryt = "/Jo/i";
var queryo = {
EmployeeName: {'$regex': queryt}
};
它不工作。如果我做了console.log(queryo)
我可以看到,周围有“乔/我”的报价:
{ EmployeeName: { '$regex': '/Jo/i' } }
注意,在我的应用程序queryt实际上是由于从由返回“查询”对象提取值设置来自快递的'取得'功能。例如,我打电话给结尾的URL为“?EmployeeName:/ Jo/i”的网页。在我的“获取”功能,我这样做:
var queryt=req.query.EmployeeName;
所以,基本上我想使用这个应用程序的Node.js是后端服务器,通过HTTP GET请求,接受查询。
我试过各种方法的条形引号,但没有成功。
对不起,如果这是一个新手型问题,但我只是在学习,并且已经花了数小时试图解决它。我希望有更多经验丰富的node.js开发人员能够快速告诉我如何构建此对象,以便collection.find将接受它。谢谢!
从var queryt =“/ Jo/i”中删除引号;' - 目前您正在创建一个字符串而不是正则表达式对象。它应该是'var queryt =/Jo/i;'就像你演示的第一种方式一样。 – nnnnnn