我正在评估服务器端框架,我很高兴听到您对Meteor的以下问题的看法:
我有一个从MongoDB,NodeJS和Angular构建的工作系统。
我根据系统和常识的需要在Mongo中设计我的数据模型。例如,系统基于包含多个组件的项目概念,因此我有一个proejcts
集合,文档内部看起来像
{
_id: ObjectId('123'),
name: "Project A",
components: [
{
compType: "type-A"
},
{
compType: "type-B"
}
]
}
现在我正在评估Meteor的服务器端框架,并在玩了一段时间之后,阅读文档并查看示例我看到即使在简单的Todos示例中,而不是将数据建模为包含待办事项的列表在其中它被建模为两个单独的集合。
据我所知,这样做是为了让DDP只同步该特定客户端实际需要的数据,但我觉得我的projects
收集并将其拆分只是为了错误帮助DDP,主要是因为这意味着我根据前端需求而不是服务器需求来建模我的数据库。
这种感觉我错了吗?
如果我使用一个集合lists
为Todos应用程序建模并在将新项目添加到列表时只是获取更新而不是有关特定项目的更新,会发生什么?
答案 0 :(得分:2)
afaik DDP可以同步子文档和更改个别密钥。除了优化DDP之外,todos应用程序可能还出于其他原因使用了两个不同的集合。如果您真的想了解DDP的工作原理,请阅读更多有关它的信息,并在检查员中查看websocket流量。你不应该花很长时间来比较两种建模待办事项的方法。