使用NodeJS为

时间:2017-01-02 08:23:50

标签: node.js string mongodb text

目前我有需要插入mongodb的数据。数据已经成功插入到mongodb中,但是有一些值我想添加到数据中并将其附加到mongodb中。

我该怎么办?这是我的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,

日期:10/10/2016,

时间:上午10:39

1 个答案:

答案 0 :(得分:1)

与评论中已经提到的一样,您应该将数据存储为对象(或数组)。第str.split(",")行已经返回了一个存储的数组。在您的代码中,您还可以将数据作为数组获取。当您调试结果时,您可以将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&amp; 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()