Hi,
My system’s user management module has an organization collection and a user collection. The user collection is frequently queries by my frontend to validate if the user has proper access to frontend features. The organization collection is rarely changed by our users.
I am wondering whether I should having some organization info duplicately stored in the user collections like “OrgDisplayName” and “OrgRole” to avoid calling $lookup frequently. For a SQL database, I will definitely avoid this and use the SQL Joins. But I don’t know whether $lookup has very high cost in MongoDB such as latency and database capacity.
Thanks!
type Organization struct {
Id primitive.ObjectID `bson:"_id,omitempty"`
DisplayName string `bson:"display_name,omitempty"`
Admins []string `bson:"admins,omitempty"`
Users []string `bson:"users,omitempty"`
}
type User struct {
Id primitive.ObjectID `bson:"_id,omitempty"`
OrgId primitive.ObjectID `bson:"org_id,omitempty"`
OrgDisplayName string `bson:"org_display_name,omitempty"`
OrgRole string `bson:"org_role,omitempty"`
}