사용자가 참여할 수있는 'Meteor'애플리케이션에 '그룹'이 있습니다. 그룹 페이지에는 가입 한 사용자 목록이 표시됩니다. 과 같이이 게시 임 : 또한 사용자와 같은사용자가 Meteor의 공개 또는 비공개 그룹에 가입하도록 허용 하시겠습니까?
Meteor.publish("allUsers", function() {
return Meteor.users.find({}, {fields: {name: 1, groups: 1}});
});
그러나 ID는 공개 또는 비공개 그룹에 가입하는 옵션이 있습니다. 내가이 일을 생각할 수있는 유일한 방법은 현재 사용자에 게시 개인적으로 합류 그룹에 대한 또 다른 필드가하는 것입니다 :
Meteor.publish('currentUser', function() {
return Meteor.users.find(
{ _id: this.userId },
{ fields: { name: 1, groups: 1, groups-private: 1 } },
);
});
이 날 현재 사용자에게 그들이 개인적으로 가입 한 모든 그룹을 표시 할 수 있습니다 공개 그룹 데이터도 표시합니다.
그러나이 방법에는 한계가 있습니다. 그룹의 총 회원 수를 표시 할 수 없으며 모든 비공개 회원 수를 계산할 수 없습니다. 이것을 어떻게 얻을 수 있습니까? 그룹 컬렉션에 번호를 저장해야합니까? 내가 이것을하면 경쟁 조건을 얻는 것에 관심이있다.
'''그룹''과''그룹 - 개인'''은 어떻게 구성되어 있습니까? 단지 그룹 이름의 배열입니까? 어쩌면 당신이 제안한 것과 같은 별도의 컬렉션을 가질 수 있고, 모든 사용자에 대해 관찰자를 실행시킬 수 있습니다. 사용자 문서가 새로 삽입되거나 변경되거나 삭제되면 관찰자를 통해 카운트를 그에 따라 증가 또는 감소시킵니다. – blueren
기본적으로 사용자의 그룹 및 그룹 - 개인 필드는 그룹과 관련된 ID 배열입니다. – Evans