146 lines
3.1 KiB
Markdown
146 lines
3.1 KiB
Markdown
# 神射手 - ER与查询逻辑
|
|
|
|
> 📅 从 MongoDB 与代码提取 | 2026-01-31
|
|
|
|
---
|
|
|
|
## 一、核心集合ER
|
|
|
|
### 1.1 KR.用户估值(统一画像)
|
|
|
|
```yaml
|
|
集合: 用户估值
|
|
文档数: 1436万
|
|
索引: phone, name, email
|
|
|
|
字段:
|
|
phone: string # 手机号(多种格式)
|
|
phone_masked: string # 脱敏手机 134****0001
|
|
name: string # 姓名
|
|
user_level: string # 用户等级 S/A/B/C/D
|
|
user_evaluation_score: number # 估值分 0-5000+
|
|
province: string # 省份
|
|
city: string # 城市
|
|
source_channels: array # 数据来源 ['KR_手机']
|
|
unified_tags: array # 统一标签
|
|
traffic_pool: object # { pool_name: '黄金池' }
|
|
rfm_scores: object # { R, F, M }
|
|
```
|
|
|
|
### 1.2 KR_腾讯.QQ+手机
|
|
|
|
```yaml
|
|
集合: QQ+手机
|
|
文档数: 7.05亿
|
|
索引: phone, qq
|
|
|
|
字段:
|
|
qq: string # QQ号
|
|
phone: string # 手机号
|
|
手机号: string # 同 phone
|
|
QQ号评分: number
|
|
手机号评分: number
|
|
省份: string
|
|
运营商: string
|
|
```
|
|
|
|
### 1.3 KR_存客宝.用户资产统一视图
|
|
|
|
```yaml
|
|
集合: 用户资产统一视图
|
|
文档数: 21.6万
|
|
|
|
字段:
|
|
phone_masked: string
|
|
unified_tags: array # ['白银级用户', '存客宝用户']
|
|
traffic_pool: object # { pool_name: '白银池' }
|
|
rfm_scores: object # { user_level: '白银' }
|
|
```
|
|
|
|
### 1.4 KR_点了码.用户资产统一视图
|
|
|
|
```yaml
|
|
集合: 用户资产统一视图
|
|
文档数: 1000
|
|
|
|
字段:
|
|
角色标签: string # 商户/用户
|
|
用户等级: string
|
|
phone: string
|
|
name: string
|
|
```
|
|
|
|
---
|
|
|
|
## 二、关键查询逻辑
|
|
|
|
### 2.1 手机号查询(多格式匹配)
|
|
|
|
```javascript
|
|
db.用户估值.findOne({
|
|
$or: [
|
|
{ phone: "13800138000" },
|
|
{ phone: "+8613800138000" },
|
|
{ phone: "8613800138000" }
|
|
]
|
|
})
|
|
```
|
|
|
|
### 2.2 QQ→手机→画像
|
|
|
|
```javascript
|
|
// 1. QQ查手机
|
|
db.getCollection('QQ+手机').findOne({ qq: "28533368" })
|
|
|
|
// 2. 手机查画像
|
|
db.用户估值.findOne({ phone: "138xxx" })
|
|
```
|
|
|
|
### 2.3 流量池分桶(采样)
|
|
|
|
```javascript
|
|
db.用户估值.aggregate([
|
|
{ $sample: { size: 100000 } },
|
|
{ $match: { user_evaluation_score: { $exists: true, $gt: 0 } } },
|
|
{ $bucket: {
|
|
groupBy: '$user_evaluation_score',
|
|
boundaries: [0, 500, 1000, 2000, 3000, 10000],
|
|
default: 'other',
|
|
output: { count: { $sum: 1 } }
|
|
}}
|
|
], { maxTimeMS: 15000 })
|
|
```
|
|
|
|
### 2.4 人群圈选(按项目)
|
|
|
|
```javascript
|
|
// 存客宝: 按流量池名
|
|
db.getCollection('用户资产统一视图').find({ 'traffic_pool.pool_name': '黄金池' })
|
|
|
|
// 点了码: 按角色标签
|
|
db.getCollection('用户资产统一视图').find({ 角色标签: '商户' })
|
|
|
|
// QQ: 按省份
|
|
db.getCollection('QQ+手机').find({ 省份: '福建' })
|
|
```
|
|
|
|
---
|
|
|
|
## 三、字段映射
|
|
|
|
| 业务字段 | MongoDB字段 | 多库别名 |
|
|
|:---|:---|:---|
|
|
| 手机号 | phone, mobile, tel | 手机号 |
|
|
| 姓名 | name, cname | 姓名 |
|
|
| QQ | qq | - |
|
|
| 估值分 | user_evaluation_score | - |
|
|
| 等级 | user_level | 用户等级 |
|
|
| 省份 | province | 省份 |
|
|
|
|
---
|
|
|
|
## 四、关联文档
|
|
|
|
- [数据库管理规范.md](./数据库管理规范.md)
|
|
- [../6、后端/MongoDB连接器核心.md](../6、后端/MongoDB连接器核心.md)
|