2017-01-02 57 views
1

添加值的MongoDB目前我有需要被插入到數據的MongoDB。數據已經成功插入到mongodb中,但是我想添加一些數據並將其附加到mongodb中。使用的NodeJS

我可怎麼辦呢?這是我inserting data代碼到MongoDB的

var MongoClient = require('mongodb').MongoClient 
 
    , format = require('util').format; 
 

 
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { 
 
    if(err) throw err; 
 

 
    var collection = db.collection('test_insert'); 
 
    collection.insert({ values:parsestring() }, function(err, docs) { 
 
     collection.count(function(err, count) { 
 
      console.log(format("count = %s", count)); 
 
     }); 
 
    }); 
 

 
    // Locate all the entries using find 
 
    collection.find().toArray(function(err, results) { 
 
     console.dir(results); 
 
     // Let's close the db 
 
     db.close(); 
 
    }); 
 
}); 
 

 
// "1,61,54,87,20,12/3/2016,8:39AM" this default value 
 
function parsestring(str="1,30,40,50,20,10/10/2016,10:39AM") 
 
{ 
 
    return str.split(","); 
 
}

我想增加價值的文本字符串。

例如: 機單位:1,

空氣溫度°C:30,

水溫°C:40,

熱溫度°C:50,

室溫°C:20,

Date:10/10/2016,

時間:10:39

+0

它會更好地使用'ODM'模塊,如'mongoose' –

+1

你已經上了同一個問題的意見在這裏:http://stackoverflow.com/questions/41390018/appending-text-string-to-mongodb-using- nodejs它仍然看起來很腥,並且將數據添加到數組或更好的對象是可取的,而不是進行字符串操作。 – str

+0

@str你看起來很腥嗎?這是我想要做的一個項目。那麼你推薦我做什麼?我如何將數據添加到數組/對象? – Marcus

回答

1

就像已經在評論中提到的,你應該將數據存儲爲對象(或陣列)。行str.split(",")已經返回給你一個你存儲的數組。在你的代碼中,你也可以將數據作爲一個數組獲取。當您使用console.dir()結果時,如果您願意,可以將results.entries映射到特定的輸出字符串。

collection.find().toArray(function(err, results) { 
    console.dir(results); // <= results.entries 
    // Let's close the db 
    db.close(); 
}); 

參見: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/map & https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/entries

但是,如果你想存儲對象(例如,用於訪問通過識別數據),你可以簡單地做它喜歡:

function parsestring(str="1,30,40,50,20,10/10/2016,10:39AM"){ 
    var dataArr = str.split(","); 
    var dbEntry = {}; 

    dbEntry.machine = dataArr[0]; 
    dbEntry.airTemp = dataArr[1]; 
    dbEntry.waterTemp = dataArr[2]; 
    dbEntry.heatTemp = dataArr[3]; 
    dbEntry.roomTemp = dataArr[4]; 
    dbEntry.date = dataArr[5]; 
    dbEntry.time = dataArr[6]; 

    return dbEntry; 
} 

當返回從MongoDB的一個簡單的對象,你將不再需要.toArray()

+0

謝謝,代碼有效。真的很感激它 – Marcus