|
@@ -51,16 +51,31 @@ find/export 示例:
|
|
|
|
|
|
|
|
**`SimCardManage`(SIM 卡,`_id` = GICCID 19位)关键字段**:
|
|
**`SimCardManage`(SIM 卡,`_id` = GICCID 19位)关键字段**:
|
|
|
- `_id`(GICCID,19位)、`status`(UNKNOWN/NOT_ACTIVATED/ACTIVATED/DEACTIVATED/RETIRED)、`platform`(SmartHub/Acceleronix)
|
|
- `_id`(GICCID,19位)、`status`(UNKNOWN/NOT_ACTIVATED/ACTIVATED/DEACTIVATED/RETIRED)、`platform`(SmartHub/Acceleronix)
|
|
|
-- `allDataUsage`(累计用量,**单位 KB**)、`month`(yyyy-MM)、`expirationTime`、`updateTime`
|
|
|
|
|
|
|
+- `allDataUsage`(累计用量,**单位 KB**)、`month`(统计月份,**格式不统一,见下方「month 字段双格式」**)、`expirationTime`、`updateTime`
|
|
|
- 敏感字段(会被脱敏):`imei`、`imsi`、`msisdn`
|
|
- 敏感字段(会被脱敏):`imei`、`imsi`、`msisdn`
|
|
|
|
|
|
|
|
-**`SimCardMonthlyData`(SIM 月用量)**:`simId`(GICCID)、`month`、`allDataUsage`(**单位 KB**)、`dailyUsage`。
|
|
|
|
|
|
|
+**`SimCardMonthlyData`(SIM 月用量)**:`simId`(GICCID)、`month`(**格式不统一,见下方「month 字段双格式」**)、`allDataUsage`(**单位 KB**)、`dailyUsage`。
|
|
|
|
|
|
|
|
> **流量单位换算(写阈值必看)**:`allDataUsage`、`dailyUsage.dataUsage` 一律为 **KB**。
|
|
> **流量单位换算(写阈值必看)**:`allDataUsage`、`dailyUsage.dataUsage` 一律为 **KB**。
|
|
|
> 换算:1 MB = 1024 KB,1 GB = 1048576 KB。
|
|
> 换算:1 MB = 1024 KB,1 GB = 1048576 KB。
|
|
|
> 常用阈值:**200MB = 204800**、500MB = 512000、1GB = 1048576、2GB = 2097152。
|
|
> 常用阈值:**200MB = 204800**、500MB = 512000、1GB = 1048576、2GB = 2097152。
|
|
|
> 因此"流量大于 200M"应写 `{"allDataUsage": {"$gt": 204800}}`,不要用 200 或 200000000。
|
|
> 因此"流量大于 200M"应写 `{"allDataUsage": {"$gt": 204800}}`,不要用 200 或 200000000。
|
|
|
|
|
|
|
|
|
|
+> **⚠️ month 字段双格式(按 month 过滤/分组必看)**:`SimCardManage.month` 与 `SimCardMonthlyData.month` 历史上存在**两种写法并存**:
|
|
|
|
|
+> - `yyyy-MM`(带连字符,如 `2026-01`)——SmartHub 平台写入。
|
|
|
|
|
+> - `yyyyMM`(无连字符,如 `202601`)——Acceleronix 平台写入。
|
|
|
|
|
+>
|
|
|
|
|
+> 因此**不能只用一种格式做等值匹配**,否则会漏掉另一半数据。按月份筛选时用以下任一兼容写法:
|
|
|
|
|
+> - **枚举两种格式**(推荐,简单可用索引):
|
|
|
|
|
+> `{"month": {"$in": ["2026-01", "202601"]}}`
|
|
|
|
|
+> - **归一化后匹配**(在 pipeline 里先去掉连字符再比):
|
|
|
|
|
+> ```json
|
|
|
|
|
+> { "$addFields": { "monthNorm": { "$replaceAll": { "input": "$month", "find": "-", "replacement": "" } } } },
|
|
|
|
|
+> { "$match": { "monthNorm": "202601" } }
|
|
|
|
|
+> ```
|
|
|
|
|
+> 按 month 分组统计时同理,建议先用上面的 `$addFields` 归一化出 `monthNorm` 再 `$group`,避免同一个月被拆成两组。
|
|
|
|
|
+> `service_sim_monthly_data` 等 service 层工具入参仍用 `yyyy-MM`(由后端处理),此双格式问题**仅影响 `data_mongo_*` 直查**。
|
|
|
|
|
+
|
|
|
#### JOIN 关系图谱(跨集合关联键)
|
|
#### JOIN 关系图谱(跨集合关联键)
|
|
|
|
|
|
|
|
- **站点 ↔ SIM**:`SiteInfoManageData.iccId` 取**前 19 位** = `SimCardManage._id`(GICCID)。
|
|
- **站点 ↔ SIM**:`SiteInfoManageData.iccId` 取**前 19 位** = `SimCardManage._id`(GICCID)。
|