2017-01-02 4 views
1

を使用してMongoDBに値を追加すると、mongodbに挿入する必要があるデータがあります。データはmongodbに正常に挿入されましたが、データに追加してmongodbに追加する価値があります。現在NodeJS

どうすればいいですか?これは私がテキスト文字列に値を追加したいの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(","); 
 
}

inserting dataための私のコードです。例えば

: マシン単位:1、

気温C°:30、C°

水温:40℃、

耐熱温度:50、

室温℃:20,

日時:10/10/2016,

時間:10:39 AM

+0

It 'mongoose'のような' ODM'モジュールを使うほうが良いでしょう –

+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

関連する問題