gpt4 book ai didi

javascript - 使用 JSON.parse 解析 MongoDB 查询字符串

转载 作者:行者123 更新时间:2023-12-02 21:58:25 25 4
gpt4 key购买 nike

我正在尝试创建一个 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...

变量“query”在 JSON.parse 之前具有以下值:

{ $group: { _id: "b", avg: { $avg: "$b" }, stdev: { $stdDevPop: "$b" }, nonMissing: { $sum: 1 }}}

这里出了什么问题,为什么我会收到 JSON.parse 错误?我打算使用 db.collection.aggregate() 内的查询

最佳答案

所有键都必须用双引号"括起来才能使用JSON.parse而不会出现错误

let queryString = '{ "$group": { "_id": "b", "avg": { "$avg": "$b" }, "stdev": { "$stdDevPop": "$b" }, "nonMissing": { "$sum": 1 }}}';
console.log(JSON.parse(queryString))

注意:- 如果您想在查询中包含日期或正则表达式,则需要使用 JSON.parse 的回调函数并将其转换为所需的数据类型

因此,使用对象而不是查询字符串是更好的选择。

关于javascript - 使用 JSON.parse 解析 MongoDB 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com