将整个MongoDB插入语句保存在一个变量中

Holding entire MongoDB insert statement in one variable

本文关键字:一个 变量 保存 MongoDB 插入 语句 存在      更新时间:2023-09-26

我一直在尝试创建一个字符串,JSON可以使用,将一组数据插入MongoDB。请注意,正在输入数据,所有信息都是正确的。

但是,"finalString"被视为单个变量,并被输入为"finalString":undefined,然后直接进入下一个值,即undefinedStudent...,而不是undefined,"Student..."。

但是,在此之后,数据被正确输入,mongo 将变量的其余部分视为语句。我将如何让我的脚本将变量识别为一个完整的语句。

mclient.connect(url[0], function(err, db) {
    var dataToJSONFormat = "";
    for(var i = 0; i < properties.length; i++) {
        dataToJSONFormat += properties[i] + " : '" + values[i] + "'";
        if(i < properties.length - 1) dataToJSONFormat += ", ";
    }
    write("OrderData: {" + JSON.stringify(dataToJSONFormat) + "}");
    var finalString = dataToJSONFormat;
    db.collection(url[1]).insert(
        {
            OrderData : {finalString}
        }
    );
    console.log(dataToJSONFormat);
    console.log("Data input successful");
    db.close();
});

在 JavaScript 中,你不需要从字符串生成对象。你可以只使用对象文字表示法,如下所示。

mclient.connect(url[0], function(err, db) {
    var data = { OrderData:{} }
    for(var i = 0; i < properties.length; i++) {
      //this does the trick. You can assign key values to object on the fly. using obj[key] = value  
      data.OrderData[properties[i]] = values[i]; 
    }
    db.collection(url[1]).insert(data);
    console.log("Data input successful");
    db.close();
});

检查这个显示概念的jsFiddle。