在我的应用程序中,我有一个 User 集合和一个 Board 集合。用户文档具有嵌入的参与文档,如下所示:{_id: 1, board_id: 1, role: "admin"}
. (参与实际上是董事会和用户之间的加入)
我正在尝试决定如何让所有用户参与特定董事会的board.users
方法:
- 嵌入式参与文件查询:
db.users.find( { 'participation.board_id': board.id }
- 在 board 文档上维护 user_ids 数组:
db.users.find( { _id: { $in: board.user_ids } } )
假设该user.participations.board_id
字段也被索引,是否user_ids
在板上维护一个数组会导致更快的性能?
本质上,通过 ID 查询文档是否比通过嵌入文档查询更快?