如何在mongodb查询中传递没有双引号的字符串

时间:2016-06-10 12:03:33

标签: javascript node.js mongodb

我试图将一个字符串传递给我的mongodb查询,但当它进入查询时,它会在字符串中添加双引号。

我将此字符串作为字符串传递给条件,因为它是以字符串形式动态形成的:

str1={AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:[4697523]},ConfigID:{$‌​in:[4697520]}}

var criteria = { str1 },

因此,当我将此最终条件传递给db.coll.aggregate时,它会在查询中附加str1和双引号。

query forming={"$match":{"str1":"{AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:‌​[4697523]},ConfigID:{$in:[4697520]}}"}

 query desired= {"$match":{AccId:8,WSId:24237,CaseID:{$in:[4697516]},MEId:{$in:[4697523]},Config‌​ID:{$in:[4697520]}}}

如何获得所需的查询?

1 个答案:

答案 0 :(得分:0)

您真正想要做的是使用对象初始化方法(如bracket notation)创建管道。此外,您无需在查询中将 $in 运算符与单个数组元素一起使用,只需直接在值上查询字段即可。

按照此示例获取概念:

var criteria = {
        'AccId': 8,
        'WSId': 24237,
        'CaseID': 4697516,
        'MEId': 4697523,
        'ConfigID': 4697520
    },
    match = {};

match["$match"] = criteria;
db.collection.aggregate([match]);