2016-07-07 66 views
0

我一直在試圖創建一個可用於JSON的字符串來將一組數據插入到MongoDB中。請注意,正在輸入數據,所有信息都是正確的。但是,「finalString」被視爲一個單獨的變量,並被輸入爲「finalString」:undefined,然後繼續進入下一個值,即undefinedStudent ....,而不是未定義的「,學生...」。在一個變量中保存整個MongoDB插入語句

然而,然後,數據輸入正確,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

在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,顯示的概念。

相關問題