소셜 미디어 활동 계정과 같은 것에 대한 알림 신청을 본 수많은 사용자가 있다고 가정 해 보겠습니다.관계를 사용하지 않고 mongoDB 객체에 여러 항목을 올바르게 "연결"하는 방법은 무엇입니까?
오프라인 상태에서 "놓친"업데이트를 볼 수있는 옵션으로 사용자를 플래시하고 싶습니다.
사용자 모델에 연결된 데이터 개체에 알림의 MongoDB _id
을 저장하면 사용자가 모든 채널에 가입하고 몇 메가 바이트의 업데이트가 누락되어 사용자 개체가 매우 커지는 상황이 발생할 것으로 예상됩니다 :
{ name: 'John'
missedNotifications: [ /* 10 million items */ ]
}
하지만이 "지원"협회는 종류의 여러 장소에서이 중복 된 데이터를 것 많은-to-many 연관을 제외하고는 같은 문제로 실행됩니다.
알림 개체에 본 적이 있거나없는 사용자 목록이있는 경우 몇 년 후 전체 알림 컬렉션을 검색하는 데 시간이 많이 걸릴 수 있습니다.
누가 모델을 보았고 모델을 제대로 수정했는지 추적하는 세 번째 방법이 있습니까?
조금 날아갔습니다. $ gt는 ID를 어떻게 분석합니까? –
MongoDB가 ObjectId 비교를 처리하는 방법에 대한 실제 내부 정보가 확실하지 않지만 16 진수 값은 순서를 결정합니다. id의 처음 4 바이트는 타임 스탬프를 나타냅니다. 즉, 최소한 ID는 타임 스탬프에 따라 초 단위의 정밀도로 정렬됩니다. 다음 5 바이트는 애플리케이션을 수평으로 확장하지 않으면 큰 관심사가 아닙니다. 상대적으로 일정하게 유지됩니다. 마지막 3 바이트는 카운터이며 동일한 초에 삽입 된 문서가 올바르게 정렬되도록합니다. –