MongoDB 查询巨大的动态对象字段

时间:2021-07-27 19:18:31

标签: mongodb

我目前正在节点 js 和 MongoDB 数据库上开发 Web 应用程序的后端。我将有两个模型如下:一个最多包含 10^9 个文档的 User 模型和一个最多包含 10^5 个文档的 Question 模型。我可以限制我的代码向每个用户最多询问 10^4 个问题(但我不想限制)。每个问题都有一个字符串数组的答案。每个数组最多有 10 个元素。问题被问了不止一次,所以我经常更新用户的答案。我想根据用户对一个或多个问题的回答来查询用户。

我的第一个解决方案是在每个用户中都有一个对象字段,并将用户对对象内的问题的答案写入,因为键将是问题 ID,值将是一个字符串数组。首先,我担心随着用户回答越来越多的问题,对象字段的大小可能会成为一个问题。此外,我不确定 MongoDB 是否能够有效地查询这些文档。我会经常询问他们;要么计算文档数,要么查找所有匹配的文档,一次 1000 个文档,等等。此外,在用户模型的对象字段上创建索引对我有帮助吗?我找不到很多关于 MongoDB 对象字段的索引和查询的信息。

如果 MongoDB 不能有效地执行这些类型的查询,那么有什么替代解决方案?我有一些替代解决方案的想法,但它们对于复杂的查询还不够好。非常感谢!

0 个答案:

没有答案