mongodb - 一个集合中的许多文档与多个集合

我使用 mongodb 作为数据库存储。

我的网络应用必须收集用户响应。

用户响应是 mongodb 中的一个文档(或 sql 中的一行)。一个文档的长度大约是10~200。

用户响应被分类(仅归类)。对于每个类别,用户响应的数量在 100~5000 之间。如果两个文档属于同一类别,则具有相同的长度。 (或者它们在 sql 中有相同的列)

可以根据管理员的要求动态创建/删除类别。

目前,我的数据结构是

category collection
{_id, 'name' : 'c1', 'somevalue' : '123'}
{_id, 'name' : 'c2', 'somevalue' : '23'}
{_id, 'name' : 'c3', 'somevalue' : '143'}
{_id, 'name' : 'c4', 'somevalue' : '153'}
...

'c1' collection
{ userresponse1 }
{ userresponse2 }
{ userresponse3 }
...

'c2' collection
{ userresponse1 }
{ userresponse2 }
{ userresponse3 }
...

'c3' collection
{ userresponse1 }
{ userresponse2 }
{ userresponse3 }
...

'cN' collection
{ userresponse1 }
{ userresponse2 }
{ userresponse3 }
..

这是一个明智的决定吗?我担心通过为每个类别分配一个集合而出现问题的可能性。如果我有很多集合,会有一些性能问题吗?我应该合并我的收藏并给用户响应一些标识符吗?

最佳答案

当然,答案取决于您的查询模式以及您正在查看的集合数量。在不了解更多信息的情况下,我怀疑您需要进行跨越许多响应集合的查询。

例如,如果每个 userresponse 都有一个 userId 字段,并且假设您想要获取特定用户的所有响应的日期排序列表。您需要遍历所有集合,查询每个集合,并将结果组合到客户端代码中。显然,与索引 UserResponse 集合中的单个简单查询/排序相比,这将是非常低效的。

https://stackoverflow.com/questions/14607443/

相关文章:

mongodb - 使用 pymongo 将 MongoDB 导出为 CSV

mongodb - MongoDB 中 V8 JavaScript 引擎对 map reduce 的

mongodb - Mongos认证

java - 在等待与 WritableServerSelector 匹配的服务器时超时 30000

regex - MongoDB 中 $cond 中的“like”或 $regex 查询

mongodb - .NET 驱动程序与 LINQ : NotSupportedException:

mongodb - 对大量数据使用 Mongo 地理空间查询

javascript - MongoDB 聚合框架 - 按年份分组

mongodb - 使用 SSL 的 mongodump 和 mongorestore

python - 如何让 django celery 写入测试数据库以进行功能测试?