Я пытаюсь создать динамическую коллекцию метеоров с использованием переменной, поэтому новая коллекция метеоров будет создаваться каждый раз при отправке формы и событии. Смотрите код ниже для того, что я ищу, хотя это не работает. (Имейте в виду, что я все еще на ранних этапах производства, поэтому я не настроил определенную серверную или клиентскую сторону для целей отладки. Также игнорируйте любые грамматические или структурные ошибки, так как я просто набрал это. Как это сделать)Создание динамической коллекции метеоров с использованием переменной
Предназначенный результат:
Предположим, что пользователь 1 метеора идентификатор x533hf4j3i
Предположим, что пользователь 2 метеора идентификатор jf83jfu39d
рЕЗУЛЬТАТ: x533hf4j3ijf83jfu39d = новый Mongo.Collection ('') x533hf4j3ijf83jfu39dmessages
этот пример кода, который не работает
Template.createChat.events({
'submit form': function(event){
event.preventDefault();
var messageRecipientVar = event.target.messageRecipient.value;
var currentUserId = Meteor.userId();
var recipientUserId = Meteor.users.findOne(messageRecipientVar)._id;
var chatCollectionNameVar = {$concat: [currentUserId, recipientUserId]}
var chatCollectionName = {$concat: [currentUserId, recipientUserId, "messages"]}
chatCollectionNameVar = new Mongo.Collection('chatCollectionName');
}
});
благодарю вас за отзыв. Я понял, что это стандартный способ сделать это. но если бы у меня была одна коллекция для всех сообщений, я чувствую 1. потребуется много времени, чтобы получить текущие сообщения чатов через миллион сообщений (при условии, что у меня было несколько тысяч пользователей) и 2. если кто-то взломал одну коллекцию, доступ к КАЖДОМУ, а не только одному чату. Я довольно новичок в этом, так что ваши комментарии к этому? спасибо –
не попадайте в ловушку для оптимизации преждевременно! Но когда вам нужно, вы можете добавить индексы в свою коллекцию MongoDB, чтобы поддерживать ее быстро. https://docs.mongodb.org/manual/indexes/. – JeremyK
Безопасность? Контролируйте, что отправляется на сервер клиента с подписками. Взлом не будет «за коллекцию», и это гораздо более важный вопрос. Сохранение ваших данных таким образом не повлияет на безопасность вашего приложения. – JeremyK