【发布时间】:2020-05-13 15:04:56
【问题描述】:
我正在尝试制作一个 MongoDb 脚本,该脚本从变量数组中传递变量名,然后对该变量执行查询:
var continous = ['b', 'e', 'LBE']; //list of variables
continous.forEach(e => izracun(e));
function izracun(atr) {
var query = '{ $group: { _id: "'+atr+'", avg: { $avg: "$'+atr+'" }, stdev: { $stdDevPop: "$'+atr+'" }, nonMissing: { $sum: 1 }}}';
query=JSON.parse(query);
};
查询构造为字符串,但是当我尝试对其进行 JSON.parse 时,出现以下错误:
[js] uncaught exception: SyntaxError: JSON.parse: expected property name or '}' at line 1 column 3 of the JSON data...
变量“查询”在JSON.parse 之前具有以下值:
{ $group: { _id: "b", avg: { $avg: "$b" }, stdev: { $stdDevPop: "$b" }, nonMissing: { $sum: 1 }}}
这里出了什么问题,为什么会出现 JSON.parse 错误?我打算在db.collection.aggregate()中使用查询
【问题讨论】:
-
你为什么构造一个string查询只是为了在之后将其解析为一个对象?为什么不首先使用一个对象?
-
不要解析,我认为构造的对象应该按原样工作。试一试
标签: javascript json mongodb