У меня проблема с дизайном класса C # для mongodb, предположим, что есть два класса:
public class Group
{
public Group()
{
Users = new List<User>();
}
public ObjectId Id { get; set; }
public List<User> Users { get; set; }
}
public class User
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
, и в mongodb им соответствуют две отдельные коллекции, схема выглядит следующим образом:
Group:
{
"_id" : ObjectId("4e7839d90a2248d934c182bd"),
"Name" : "Group1",
"Users" : [
{"_id": ObjectId("4e7839d90a2248d934c154af"), "Name": "User1"}
]
}
User:
{
"_id" : ObjectId("4e7839d90a2248d934c154af"),
"Name" : "User1",
"Email": "some@some.com"
}
в соответствии с некоторыми принципами разработки Mongodb, каждый раз, когда я хочу отобразить имя каждого пользователя в группе, поэтому я встраиваю поля некоторых пользователей в коллекцию групп, поэтому требуется только один запрос, но при вставке объекта группывсе поля в каждом объекте User будут вставлены, например, выше: также будет вставлено электронное письмо, которое разрушит исходную схему и займет больше места.так как я могу вырезать электронную почту пользователя при вставке объекта группы, у вас, ребята, есть хорошая идея?