프로젝트 용으로 Meteor JS를 사용하고 있기 때문에 본질적으로 MongoDB를 사용하고 있습니다. 사용자 체크 인 및 체크 아웃을 저장하고 있습니다. 현재 컬렉션에 개별 문서로 저장하고 있습니다. 각 액션에는 3 개의 필드가 있습니다. 인 또는 아웃, 행동 시간 및 사용자 ID. 그래도 갈 수있는 가장 좋은 방법이 있습니까? 구성원 당 하나의 문서를 가지고 각 작업을 배열에 저장해야합니까? 다른 방법이 있습니까? 나는 수백명의 회원을 기대하지만 앞으로는 수천 명의 회원이되기를 희망한다. 감사.MongoDB를 사용하여 MeteorJs에 사용자 작업을 저장하는 방법은 무엇입니까?
1
A
답변
0
경험에 비추어 볼 때, 배열 대신 레코드를 저장하는 것이 장기적으로 더 나은 선택이라고 말할 수 있습니다.
Meteor와 관련하여 그 반응성은 수집 레코드를 처리하지만 배열의 개별 필드는 처리하지 않습니다. 다시 말해, 하나의 요소가 checkins
사용자 개체 배열에 추가되면 전체 사용자 개체를 클라이언트와 동기화해야합니다. 대신 레코드를 저장하면 새로 추가 된 레코드 만이 발행물에 의해 전송됩니다.
MongoDB와 관련하여 문서 크기 제한은 16MB입니다. 체크 인 및 체크 아웃 빈도는 확실하지 않지만 배열에 저장하면 어느 정도 그 한계에 부딪 힐 수 있습니다.
레코드는 배열보다 액세스하기가 쉽습니다.
자세한 내용은 Bulletproof Meteor의 MongoDB data modeling 및 Database modeling을 참조하십시오.