У меня Монго документ в следующем формате:Связывание пользователей по идентификатору в Метеоре публиковать
Group: {
participants: [
userId,
userId,
userId
]
}
... где UserIds, очевидно, собственное ObjectIds метеора для дока пользователей.
Проблема, с которой я действительно сталкиваюсь, заключается в том, что я хочу, чтобы пользователи просматривали другую информацию о пользователе в своей группе. В этой реализации я представляю безопасную (читая: я удалил автоматическую и небезопасную) систему групповых сообщений.
Моя текущая опубликовывать реализация выглядит следующим образом:
//grab all groups user belongs to
Meteor.publish("groups", function() {
var groups = Groups.find({
participants: {
$in: [ this.userId ]
}
});
return groups;
});
Теперь, в идеале, я хотел бы просто реализовать код, чтобы манипулировать groups
, прежде чем я закончу публикации он также опубликует данные каждого участника user.profile
, а также. Окончательный формат вообразил будет выглядеть следующим образом:
Group: {
participants: {
userId
},
users: {
{ //One of these for each user
userId,
firstName,
lastName,
otherData
}
}
}
Одна вещь, которую я заметил, что без autopublish и небезопасно, я не могу просто сделать это на клиенте через вспомогательную функцию.
Как получить доступ к этим дочерним данным? Я регистрирую коллекцию на консоли Chrome, и я не вижу никакого нового массива, в котором это было бы. – Henry
Как, код строит, но я не вижу никаких новых данных, отправленных клиенту. – Henry
На клиенте вы увидите дополнительные документы в коллекции 'Meteor.users', но только с запрошенными вами полями. Нет отдельного массива. –