您推荐哪种 NoSQL 数据库,以及该架构将如何查找以下 Web 应用程序要求。
可以有很多用户(500k+)
每个用户都可以输入他/她的文件
每个用户每月可能会创建 10-200 个文档
每份文件都很小(大约 100 字)
用户可以用他/她自己的标签来标记文档
来自不同用户的数据不会与其他用户及其数据交互
用户可以通过标签搜索他的条目
从一个用户快速访问所有条目
用户可以创建复杂的动态查询来查询他/她的数据
我的想法是使用 MongoDB。但我看到的问题是只有两个集合:users和entries。
在一个巨大的集合中按标签搜索对我来说似乎是个坏主意。恐怕索引的大小会非常大,因为每个用户都可以拥有自己的标签。MongoDB 将为整个集合创建标签索引,但我将始终只通过来自一个用户的条目而不是来自所有用户的条目来搜索标签。
因此,每个用户的集合想法似乎更合适,但似乎可以创建多少集合是有限的,而且这种方法似乎是不受欢迎的。
CouchDB 不支持动态查询,...
我应该如何在 MongoDB 中实现这个?或者命名一个更合适的 NoSQL 数据库。
类似应用的示例:rememberthemilk、Trello、...