# 数据转发至MongoDB存储
#### 场景说明
对于平台的流转数据可以选择让平台将设备上报数据转发给文档数据库服务（DDS），由DDS进行存储（华为云DDS完全兼容MongoDB协议），用户无需做额外的数据存储代码开发即可使用设备数据进行业务处理。本示例为将流转数据转发至文档数据库服务存储。
#### 购买MongoDB实例
1. 登录华为云官方网站，访问[文档数据库服务DDS](https://www.huaweicloud.com/product/dds.html)。
2. 单击"进入控制台"进入文档数据库服务管理控制台。
3. 单击右上角"购买数据库实例"，根据需求选择实例规格与[配置安全组](https://support.huaweicloud.com/usermanual-dds/dds_03_0318.html)后，单击"立即购买"。
   
   图1购买MongoDB实例
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001761104628.png "点击放大")
   
   
 
#### 配置设备接入服务
在设备接入服务中创建产品模型、注册设备并设置数据转发规则，实现当设备上报数据时将数据转发至MongoDB。
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 左侧导航栏单击"产品"，在页面中单击"创建产品"，选择新建产品所属的资源空间，创建一个基于MQTT协议的产品，填写参数后，单击"确定"。
   
   
   |                                **基本信息**                                ||
   |---|---|
   | 所属资源空间 | 选择资源空间           |
   | 产品名称   | 自定义，如MQTT_Device  |
   | 协议类型    | 选择"MQTT"        |
   | 数据格式   | 选择"JSON"        |
   | 所属行业      | 根据实际情况进行选择。  |
   | 设备类型   | 根据实际情况进行选择。  |
   | 所属子行业      | 根据实际情况进行选择。  |
      
   
   
3. 下载[文件](https://obs-pipeline.obs.cn-north-4.myhuaweicloud.com/sdkDeploy/Profile_01.zip)，获取产品模型文件样例。
4. 在基本信息页面，单击"上传模型文件"，在弹出的页面中加载产品模型文件，然后单击"确定"。 
   图2产品-上传产品模型   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001981312633.png "点击放大")
   
   
5. 选择左侧导航栏的"设备 \> 所有设备"，单击"注册设备"，填写设备注册参数，完成后单击"确定"，请注意保存注册成功返回的"设备ID"和"设备密钥"。 
   图3设备-注册密钥设备   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001950367894.png "点击放大")
   
   | 参数名称  | 说明                                                       |
   |:---|:---|
   | 所属资源空间                 | **参数说明：** 选择[2]中创建的产品所在的资源空间 |
   | 所属产品  | **参数说明：** 选择[2]中创建的产品。    |
   | 设备标识码 | **参数说明：**即node_id，填写为设备的IMEI、MAC地址或Serial No；若没有真实设备，填写自定义字符串，由英文字母和数字组成。  |
   | 设备名称                    | **参数说明：**自定义。                                                              |
   | 设备ID                     | **参数说明：**自定义，可不填，平台会自动生成一个设备ID                                              |
   | 设备认证类型                     | **参数说明：**选择"密钥"。                                                            |
   | 密钥    | **参数说明：**设备密钥，可自定义，不填写物联网平台会自动生成。                                           |
      
   
   
6. 选择左侧导航栏的"规则\>数据转发"，单击左上角的"创建规则"。 
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   您也可以基于已经创建的规则，在规则详情页面，添加新的转发目标MongoDB。
   
   
7. 参考下表参数说明，填写规则内容。以下参数取值仅为示例，您可参考[数据转发流程](https://support.huaweicloud.com/usermanual-iothub/iot_01_0024.html)填写具体的流转规则参数，填写完成后单击"创建规则"。
   
   
   | 参数名    | 参数说明                               |
   |:---|:---|
   | 规则名称  | **参数说明：**自定义，如iotda-mongodb。        |
   | 规则描述  | **参数说明：**自定义，如数据转发至MongoDB存储。         |
   | 数据来源   | **参数说明：**选择"设备属性"。                  |
   | 触发事件  | **参数说明：**自动匹配"设备属性上报"。             |
   | 资源空间 | **参数说明：**选择转发的数据来源所属的资源空间，或者所有资源空间。 |
      
   
   
8. 单击"设置转发目标"页签，单击"添加"，设置转发目标。 
   
   | 参数名      | 参数说明                                                                                                                                                                 |
   |:---|:---|
   | 转发目标  | **参数说明：**选择"文档数据库服务DDS"                                                                                                                                                |
   | 数据库实例地址 | **参数说明：**填写数据库实例的连接IP（或域名）和端口。IoTDA企业版实例支持同VPC同子网下数据库实例私网接入。                                                                                                       |
   | 数据库名称    | **参数说明：**填写数据库实例中转发目标数据库名称。                                                                                                                                           |
   | 访问账户      | **参数说明：**填写数据库实例的账户。                                                                                                                                                |
   | 访问密码   | **参数说明：**填写数据库实例的密码。                                                                                                                                                |
   | SSL      | **参数说明：** 选择是否通过SSL加密方式连接数据库。推荐使用SSL方式连接，不开启SSL方式连接可能存在数据传输安全风险。选择通过SSL方式连接时，需要先在数据库实例中[设置SSL数据加密](https://support.huaweicloud.com/usermanual-dds/dds_03_0074.html)。 |
      
   
   
9. 单击"下一步：转发数据配置"，此过程会连接数据库。
10. 填写转存集合，配置流转数据和数据库集合的映射关系，若集合不存在则会自动创建。 
    - 转发字段：流转数据的json key。
    
    - 目标存储字段：数据库集合的字段，选择目标存储字段后自动匹配字段类型。
    
    
    图4新建转发目标-转发至DDS   
    ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001983452393.png "点击放大")
    
    
11. 单击"启动规则"，激活配置好的数据转发规则。
 
#### 验证操作
触发规则数据来源的事件，比如设备属性上报。
- 您可以使用配置设备接入服务时注册的真实设备接入平台，上报任意数据。
- 您也可以使用模拟器模拟设备上报数据，操作方法请参考[在线开发MQTT协议的智慧路灯](https://support.huaweicloud.com/bestpractice-iothub/iot_bp_00016.html)。
期望结果：
登录MongoDB[管理控制台](https://www.huaweicloud.com/product/dds.html)，打开目标表格，可以查看到表格目标字段转存的数据。
图5查询数据上报信息   
![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001808157733.png "点击放大")
