跳转到主要内容

使用 MONGODB* BY COMPOSE 在英特尔EDISON 开发板上启用 IBM* BLUEMIX*

kelly 提交于


本文将介绍如何使用 Node.js* API 建立与 IBM* Bluemix* 云服务的连接, 包括创建 Bluemix 应用、添加 mongoDB* 连接,以及保存和检索数据。

创建 Bluemix 应用

1、登录Bluemix 控制台,选择 DASHBOARD 并单击 CREATE APP。


2、单击 WEB 并选择 SDK for Node.js。 单击 CONTINUE。


3、为应用命名并单击 FINISH。


4、在顶部可看到状态 “Your app is staging”。


5、分段完成后,单击左侧面板中的 overview 以查看仪表板。

6、通过应用仪表板单击 ADD A SERVICE OR API。


7、在服务页面,单击 Data and Analytics 部分的MongoDB by Compose 服务


8、在右侧您可以看到输入 Username、Password、Host 和 Port 的选项。

9、如果没有 Compose 帐号,需要创建一个。 单击 Register at Compose。


10、注册后,登录至 Compose.io 并创建 MongoDB 部署。

11、使用默认值,单击 Create Deployment。


创建部署过程将花费几分钟;您可以查看如下状态。


部署完成后,将重新定向至入门页面以创建仪表板。


12、通过单击左上角的 Add Database 来创建仪表板。 为仪表板命名并单击 Run。


13、添加仪表板用户以使用连接字符串访问仪表板。


14、单击 Admin Settings 以获取主机名称和端口详情。


15、在 Bluemix 添加服务页面,输入主机名称、端口、用户名称和密码详情。


16、单击创建后,单击弹出窗口中的 RESTAGE。


重新分段完成后,您将看到"Your app is running"状态。 在右上角。


设置开发环境

将 mongodb npm 模块安装至项目。

npm install mongodb

设置 mongodb 连接

创建面向模块的节点参考变量和客户端对象,以建立数据库连接。

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

创建 mongodb 连接

连接函数返回一个包含集合对象的 db 对象。 该集合对象用户插入数据和从云中检索数据。

可从 Bluemix 控制台获取连接网址。 从应用仪表板选择 MongoDB by Compose Service,并单击 Show Credentials。


可以使用这些整数创建连接 uri。 组成如下所示可用于节点应用的 uri。

mongodb://:
@:
/iot-compose?ssl=true
Example:

var uri = mongodb://iot-kona:intel123@aws-us-east-1-portal.11.dblayer.com:27832/iot-compose?ssl=true

拷贝整数下方的 uri 并将其传输至连接函数。

db = MongoClient.connect(uri, function(err, db) {});

保存数据

数据可以保存为 JSON 对象或 JSON 对象阵列。

data = {‘sensor-id’ : ‘sens341’, ‘value’ : 65.5} db = MongoClient.connect(config.url, function(err, db) { collection = db.collection(config.db); collection.insert(data, function(err, result) {}); });

查询数据

基于时间戳的查询

dataQuery = { "timestamp": { $gt: readQuery.timestamp } };

基于 sensorid 的查询

dataQuery = { "sensor_id": { $eq: readQuery.sensor_id } } Run query collection = db.collection(self.config.db); collection.find(dataQuery).toArray( function(err, items) { if(!err) console.log(JSON.stringify(items, null, ' ')); });

参考

  • IBM Cloud 文档
  • Mongodb npm 模块
  • MongoDB by Compose
  • 物联网基础方案
  • MQTT
  • Node-RED