我试图将一个字符串传递给我的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]},ConfigID:{$in:[4697520]}}}
如何获得所需的查询?
答案 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]);