ユーザーが参加できる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 } },
);
});
:私はこれを行うに考えることができる唯一の方法は、現在のユーザーのみに公開された個人参加のグループの別のフィールドを持っているだろうパブリックグループのデータも表示します。
しかし、このアプローチには限界があります。私はグループのメンバーの総数を示すことはできません、私的メンバーは数えられません。どうすればこれを回すことができますか?グループコレクションに番号を格納する必要がありますか?私がこれをしたら、競争条件を得ることを心配しています。
'' '' '' 'と' '' '' '' '' '' '' '' '' '' '' '' '' '' 'それは単なるグループ名の配列ですか?おそらく、あなたが示唆したような別のコレクションを持ち、オブザーバーをallUsersで実行させることができます。ユーザ文書が新たに挿入または変更または削除された場合、それに応じてオブザーバを介してカウントを増加または減少させる。 – blueren
基本的には、ユーザーのグループとグループのプライベートフィールドは、グループに関連するIDの配列です。 – Evans