Ответ 1
Сбор метеоров, определенный на сервере, имеет отношение 1:1 к коллекциям в базе данных. У вас нет коллекции в БД под названием 'allusers'
, так что определение не имеет смысла. Похоже, вы смешиваете понятие коллекции базы данных и опубликованный набор результатов.
Когда вы добавляете пакет учетных записей в свой проект, метеорит определяет коллекцию Meteor.users
для вас как на клиенте, так и на сервере, поэтому вам не нужно это делать снова. Ваш код выглядит отлично - просто удалите new Meteor.Collection
и получите доступ к пользователям через Meteor.users.find
.
Объяснение описаний коллекции
Коллекция, созданная для вас пакетом
- пример:
Meteor.users
создается пакетомaccounts
- Примечания: коллекция в БД
db.users
. Вы можете сделать эту коллекцию похожим на другие, которые вы определяете, выполняя что-то вродеUsers = Meteor.users
, а затем вызываяUsers.find()
вместоMeteor.users.find()
.
Коллекции, определенные как на клиенте, так и на сервере
- пример:
new Meteor.Collection('rooms')
- Примечания: В большинстве проектов это то, что вы делаете почти все время. Строка
'rooms'
- это имя коллекции в базе данных (db.rooms
). Документы могут быть опубликованы с сервера клиенту.
Коллекции, определенные на клиенте, но не на сервере
- пример:
new Meteor.Collection('userCount')
- Примечания. Сервер может записывать в коллекцию клиентов, но он не используется для синхронизации данных с БД. Типичный пример использования - информировать клиента о размере или других метаданных о другой коллекции. Здесь строка
'userCount'
не соответствует имени коллекции DB, а вместо этого является просто идентификатором, согласованным клиентом и сервером. - см. также: Как опубликовать коллекцию только для клиентов и Метеор подписки и отображения Количество пользователей
Неуправляемый локальный набор, определенный на клиенте
- пример:
new Meteor.Collection(null)
- Примечания: они определяются, когда клиент хочет иметь семантику коллекции, но не хочет использовать коллекцию для связи с сервером. Типичным примером использования будет демонстрационное приложение, в котором пользователь может играть с интерфейсом, но только изменять данные внутри своего браузера.