У меня проблема в C дизайн # класса для MongoDB, предположим, что существует два класса: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": "[email protected]"
}
в соответствии с некоторыми принципами дизайна MongoDB, каждый раз, когда я хочу, чтобы отобразить имя каждого пользователя в группе, так что я встраивать поля некоторых пользователей в коллекции группы, таким образом, только одиночный один запрос необходим, но при вставке Объект Group, все поля в каждом объекте пользователя будут вставлены ed, например, выше: электронное письмо также будет вставлено, что уничтожит исходную схему и займет больше места. так как я могу вырезать адрес электронной почты пользователя при вставке объекта Group, у вас, ребята, есть хорошая идея?
Спасибо, Андрей, ваш ответ отличный –
@lotus_misser: добро пожаловать. –