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

时间:2016-07-07 14:23:20

标签: javascript json node.js mongodb

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

然而," finalString"正在被视为一个单独的变量,并被输入为" finalString" :undefined,然后继续进入下一个值,即undefinedStudent ....,而不是undefined,"学生......"。

然而,在那之后,数据被正确输入并且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();
});

1 个答案:

答案 0 :(得分:0)

在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