我是NoSQL的新手,所以我可能只是有一个基本的误解......
我阅读了本教程,讲授如何使用Firebase制作聊天应用程序.例如,直接消息聊天的JSON如下所示:
{
"userMessages": {
"userid1": {
"userid2": {
"messageId1": {
"uid": "userid1",
"body": "Hello!",
"timestamp": firebase.database.ServerValue.TIMESTAMP
},
"messageId2": {
"uid": "userid2",
"body": "Hey!",
"timestamp": firebase.database.ServerValue.TIMESTAMP
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请求消息时,您将查看userMessages/UserId1/UserId2.这将给出两个用户之间的所有消息.
我决定使用DocumentDB尝试类似的东西,我不知道该怎么做.看起来我应该能够创建一个名为UserMessages的容器并将所有数据放在上面,但似乎DocumentDB只允许检索和更新顶级文档.所以在这种情况下,我需要将所有内容都放在userid1下,并且每当我添加消息时,我都需要更新整个userid1文档,包括所有未更改的消息.
我能看到这项工作的唯一方法就是将这种设计弄平.但是展平应用程序的其余部分(包含许多更复杂的对象)似乎需要创建更多的容器(每个都要花钱)当我应该能够拥有更多分层设计并仅更新我需要的层或者仅推送需要推送的其他数据.
长话短说,我对NoSQL应该如何构建有一个根本的误解,或者DocumentDB与其他NoSQL解决方案有什么不同?谢谢!