将 IOT Hub 消息发送到外部数据库

Send IOT Hub messages to external DB

我有来自两个设备的消息的 IoT 中心解决方案,现在由于 IoT 中心数据在 24 小时后被删除,我需要将该数据存储在我的 MongoDB 中,如何最好地实现这一点? 我在 Node JS 中编写了一个事件中心函数,它也可以工作,但数据永远不会显示在数据库中。

module.exports = function(context, mySbMsg) {
context.log('Message received: '+ JSON.stringify(iotHubMessage));
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb:/abc.abc.abc.abc:27017/XYZ';
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database connected!");
db.collection("IoTData").insertOne(mySbMsg, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close(); });});
context.done();}; 

我测试了下面的代码,它works.When你测试功能应用程序,你可以跟踪日志。

module.exports = function (context, IoTHubMessages) {
    context.log('Message received:' + IoTHubMessages);

    var MongoClient = require('mongodb').MongoClient;

    var url = '{{Your mongoDb connection string}}';
    MongoClient.connect(url, function(err, db) {

            if (err) throw err;

            context.log("Database connected!");

            db.collection("IoTData").insertOne({IoTHubMessages:IoTHubMessages}, function(err, res) {
                    if (err) throw err;

                    context.log("1 document inserted");
                });
            db.close(); 
        }
    );

    context.done();
};