필드 판정 — 남은 3개 컬렉션 확정

metric_series · content_raw · tokens. 필드가 적어 한 장에 모았습니다. JSON 출력은 컬렉션별로 묶여서 나옵니다. · contents · accounts · venues · token_links 모두 확정

확정  보류 4개를 제외하고 확정

① metric_series  대상당 1행 + points[] append
{
  _id, object, object_id   object/object_id 보류 — venue·account 시계열까지 덮을지
  platform     enum    최적화용 대상에서 복사
  points[]           기본값 []
    ├ at       Date    관측 시각. rd·tt 는 actor 의 crawledAt — 저장 시각을 쓰면 배치 지연이 속도에 섞인다
    └ metrics  Mixed   개별 플랫폼 원래 이름. 쓰기 시점 키 화이트리스트 필요
  created_at/updated_at  
}
제거 content_key

② content_raw  무손실 원본 · 1:1 upsert
{
  _id, object, object_id  
  payload      Mixed    개별 응답 전체. 기존 이름 data 에서 개명
  platform            ○   보류 — 키 단건 조회만 하는 컬렉션이라 필터 필드가 필요 없을 수 있다
  observed_at  Date   
  created_at/updated_at  
}
제거 object_key · object_type      미정 append 로 바꿀지(지금은 upsert, 최신 1건만)

③ tokens  얇은 상태
{
  _id                
  address     string   mint 주소 unique. token_links 의 조인 대상
  symbol      string ○   최적화용 SoT 는 tracker
  first_transfer_at  ○   최적화용 나이 앵커. token_created_at 을 대체
  discovered_at Date 
  fingerprints[]     ○   보류 — web{} 과 함께 웹 결정 뒤에
  web{}              ○   보류 — 웹 미결
  created_at/updated_at  
}
제거 trigger_reason · unclassified_links[] · price/ath_price/alpha_score
질문 1 · 이 필드로 쿼리하는가?   아니오 → data   예 → 질문 2
질문 2 · 의미가 모든 대상에서 같은가?   아니오 → data   예 → 질문 3
질문 3 · 원본(SoT)이 다른 곳에 있는가?   예 → 최적화용   아니오 → 공용
쟁점 5개metric_series 를 다형으로 둘지   accounts B-3(팔로워 급증 탐지)이 계정 시계열을 요구한다.
                                     대상당 1행 구조라 object+object_id 를 두면 컬렉션 하나로 셋을 덮는다.
  ② raw.platform 을 둘지            키 단건 조회만 하는 컬렉션이라 필터 필드가 필요 없을 수 있다.
  ③ raw 를 append 로 바꿀지         지금은 upsert(최신 1건). 이력을 쌓으면 수십 KB × 관측 횟수.
  ④ tokens.fingerprints[] 유지 여부  domain: 지문의 역할이 링크 카운트로 넘어간다.
  ⑤ tokens.web{}                   웹 미결에 종속. 2층으로 가면 sites 로 옮겨간다.
필드 어디서 오나 · 무엇인가 Q1
쿼리
Q2
의미
Q3
원본
판정 근거 · 쟁점 판정 필수 메모

JSON 출력

복사해서 채팅에 붙여넣으시면 그대로 반영하겠습니다.