In my app, I have a User collection and a Board collection. A user document has an embedded participation document, which looks like this: {_id: 1, board_id: 1, role: "admin"}.
(A participation is effectively a join between the board and a user)
I am trying to decide how I should get all the user's with participation in a particular board the board.users method:
- Query by embedded participation document:
db.users.find( { 'participation.board_id': board.id } - Maintain a array of user_ids on a board document:
db.users.find( { _id: { $in: board.user_ids } } )
Assuming the user.participations.board_id the field is also indexed, is maintaining a user_ids array on board going to result in faster performance?
In essence, Is querying a document by ID faster than querying by an embedded document?