我一直在尝试创建一个可供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();
});
答案 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。