Я столкнулся с ситуацией, когда было бы лучше представить определенную часть моей доменной модели как реляционную.Я прочитал раздел ссылки на базу данных в MongoDB и понимаю, что вы можете предоставить ссылки на несколько документов, предоставив JSON-массив ссылок $ ref на различные документы в чужой коллекции.
Все примерыЯ видел для добавления ссылки на иностранный документ в коде были только для одного документа, и они создали открытое свойство типа MongoDBRef.На мой взгляд, при таком подходе есть много ненужных накладных расходов, но он также не проясняет, что делать с хранением ссылок на несколько документов.
Если вы хотите предоставить однозначный-Много отношения между иностранными документами в Mongo, необходимо ли предоставлять свойство коллекции, содержащее объекты MongoDBRef?Можно ли придерживаться коллекции стандартных объектов сущностей в моем коде C # и сопоставлять ее с документами Mongo, используя BsonClassMap?
Ниже приведен простой класс, представляющий модель, которая у меня есть в настоящее время.Кажется, что он правильно сохраняет документ и ссылки, но мне не нравится выставлять открытую коллекцию объектов MongoDBRef и накладные расходы, необходимые для добавления новых документов для всех, кто использует класс Person.
Если это имеет значениеЯ использую MongoDB 2.0 и их драйвер C #.
// This is how my class currently looks
public class Person
{
public string Name { get; set; }
public List<MongoDBRef> Vehicles { get; private set; }
public Person()
{
Vehicles = new List<MongoDBRef>();
}
}
// This is what I want my class to look like
public class Person
{
public string Name { get; set; }
public List<Vehicle> Vehicles { get; private set; }
public Person()
{
Vehicles = new List<Vehicle>();
}
}