Если у вас есть пользовательская коллекция, просто сделайте это на стороне сервера:
export const myUser = new Mongo.Collection('myUser');
const userData = (userId) => {
return myUser.find(userId);
}
Теперь у вас будет объект со всеми пользовательскими полями, доступными на стороне сервера.Чтобы добавить поле состояния, на клиенте просто выполните Meteor.call для каждой функции, которую выполняет пользователь.(Щелкните по событию, отправьте в базу данных и т. Д.)
Meteor.methods({
'userOnline'(userId) {
myUser.update({_id:userId},{$set:{onlineDate:new Date()}})
}
}
Meteor.call('userOnline', userId);
Затем запросите в своей базе данных время ожидания.Последние n секунд, минут, часов.
query = {
onlineDate: { // 18 minutes ago (from now)
$gt: new Date(ISODate().getTime() - 1000 * 60 * 18)
}
}