提问人:gustv0 提问时间:11/17/2023 最后编辑:gustv0 更新时间:11/18/2023 访问量:38
MongoDB:存储数据以供读取的最有效方式。数组还是单个项目?
MongoDB: The most efficient way to store data for reading. Array or Individual Items?
问:
我正在寻找最有效的方法来存储数据以供读取。
我有 N 个用户,每个用户可以分配给 N 个事件。
这里重要的是,我可以快速获取使用特定名称注册的所有事件。值得一提的是,这个基数预计会增长很多,许多用户每个用户至少有几十个事件。
最初,我考虑为事件设置一个单独的集合,每个事件都将是一个具有user_id引用的对象。
事件对象:
{
"_id": ObjectId("..."),
"event_name": "event.name.example",
"user_id": ObjectId("...")
}
有了这个,我可以使用event_name字段(将有一个索引)查询事件集合,并且可以获取分配给我正在寻找的事件的所有用户。
我想象的另一种方式是拥有一个用户集合,每个用户对象都有一个事件数组。
用户对象:
{
"_id": ObjectId("..."),
"user_name": "example",
"events": [
"event.name.example.one",
"event.name.example.two",
"event.name.example.three"
]
}
但这似乎并不那么有效,因为查询必须遍历所有查找字符串的用户的所有事件。我错了吗?
这两种方法中哪一种最有效,并且遵循最佳实践?
答: 暂无答案
评论