问题
简而言之,我的问题是:当文档中的数组发生更改时,用户会收到新数组,还是仅收到更改?
如果这个问题不清楚,我在下面描述了我的问题。
问题
我有一个集合,其文档包含一个数组字段,两个用户会将值推送到。此集合中的文档如下所示:
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
-array,即使它只是一个被推送到它的值,如果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
。这个(我知道)不会有我担心第一个解决方案有的缺点(但如果它没有缺点,我宁愿使用第一个解决方案)。