如何使用没有引号的文本字符串创建对象?

时间:2017-05-25 03:15:00

标签: javascript mongodb object

我试图将对象传递给MongoClient collection.find()方法,但我不想在值周围引用。如果我传递一个文字它按预期工作:

cursor = collection.find({EmployeeName: {'$regex': /Jo/i}});

但是,如果我尝试构建该对象,如:

var queryt = "/Jo/i";
var queryo = {
    EmployeeName: {'$regex': queryt}
};

它不起作用。如果我做了console.log(queryo)我可以看到" Jo / i"周围有引号:

{ EmployeeName: { '$regex': '/Jo/i' } }

请注意,在我的应用程序中,queryt实际上是通过从“查询”中提取值来设置的。从' get'返回的对象来自快递的功能。例如,我正在调用网页的结尾URL为"?EmployeeName:/ Jo / i"。在我的" get"我正在做的功能:

var queryt=req.query.EmployeeName;

所以,基本上我试图使用这个node.js应用程序作为后端服务器,通过http get请求接受查询。

我尝试了各种方法来删除引号,但没有成功。

对不起,如果这是一个新手类型的问题,但我只是在学习,并且已经花了好几个小时试图解决它。我希望一些经验丰富的node.js开发人员可以快速告诉我如何构造这个对象,这样collection.find就会接受它。谢谢!

1 个答案:

答案 0 :(得分:0)

删除var queryt = "/Jo/i";中的双引号,这将创建字符串。

它应该是var queryt = /Jo/i;这将创建正则表达式

更新:kcantrel找到答案。上面的方法不起作用。以下方法适合他。

queryt = RegExp("jo", "i")