我有像这样的Mongo DB集合。这是聊天应用程序的动态集合。最初不会有消息和用户。当用户加入并发布文本时,USERS和MESSAGES将被添加并且将会增长。
{"ChatType":1,
"MESSAGES":[
{"sequenceNumber":3, "sender":"uuser1", "TimeStamp":"2013-12-04T11:31:06.034Z", "MessageText":"Test"},{"sequenceNumber":4, "sender":"uuser2", "TimeStamp":"2013-12-04T11:31:15.737Z", "MessageText":"Test1"},
],
"USERS":[
{"sequenceNumber":1, "name":"uuser1", "JoinTimeStamp":"2013-12-04T11:30:58.077Z"},{"sequenceNumber":2, "name":"uuser2", "JoinTimeStamp":"2013-12-04T11:30:58.093Z"}
],
"_id":"123"}
每秒会有很多次写入(每行一次插入,之后使用更新将USERS或MESSAGES添加到数组中)。还会有很多内容。
我想知道什么是正确的分片键,我应该在写策略中遵循Fan吗?如果是这样,我该怎么做?
其他信息很少 - 这是一个聊天应用程序。当用户与其他人打开聊天窗口时,会将一行添加到具有聊天类型和ID的上述集合中。当新用户加入聊天时,将添加新的USERS嵌入对象。同样,当消息进入新MESSAGES时,嵌入对象会被添加。
从检索角度来看,我检索了我所属的聊天。所以它主要基于USERS.name,也可能有其他过滤器。