ВопросВ коллекции Meteor используйте поле массива или другую коллекцию?
Короче говоря, мой вопрос: когда массив в документе изменен, будут ли пользователи получить новый массив, или только изменения?
Если этот вопрос непонятен, я описал свою проблему ниже.
Проблема
У меня есть коллекция, чьи документы содержат поле массива два пользователя будет толкать значения в. Документ, в этой коллекции вид выглядит следующим образом:
var document = {
userId1: "...user id...", // The id of the first of the two users.
userId2: "...user id...", // The id of the second of the two users.
data: [] // The field the two users will push values to.
}
data
будет с самого начала быть пустым, и пользователи будут затем по очереди толкая значения к нему.
Когда один из пользователей нажимает некоторое значение на data
, сервер отправляет изменения второму пользователю. Будет ли второй пользователь получать весь файл data
-array или просто изменения (толкаемое значение)? Я немного обеспокоен тем, что второй пользователь получит весь файл data
, хотя это всего лишь одно значение, которое было нажато на него, и если data
содержит много значений, я боюсь, что это станет узким местом.
В этом случае? Если это так, использование другой коллекции для хранения значений решит ее, правильно? Что-то вроде этого:
var document = {
id: "...unique id...",
userId1: "...user id...", // The id of the first of the two users.
userId2: "...user id..." // The id of the second of the two users.
}
var documentData = {
idReference: "...the unique id in the document above...",
value: "...a value..."
}
Вместо проталкивания значения в массив в document
, вставьте их в коллекцию, содержащую documentData
. Это (я знаю) не будет иметь недостатки, я боюсь, что первое решение имеет (но я скорее использую первое решение, если оно не имеет недостатка).
Вы можете дважды проверить, что происходит с проводом, следуя [этим инструкциям] (http://stackoverflow.com/questions/8952773/chrome-web-inspector-web-socket-debugging) для просмотра фреймов в подключении к веб-раскладке , – user728291