Вы думаете о следующем паттерне?
{
name: {
first: 'John',
second: 'James',
last: 'Jones'
},
age: 20,
address: {
street: '2nd',
city: 'Warsaw'
}
}
Как вы, очевидно, видите, причины прагматичны - группировка связанных полей (например, name
и address
) вместе более удобочитаема по сравнению стаблица с длинным плоским списком столбцов.Также вы избегаете чрезмерно длинных идентификаторов, используя точечные обозначения.
Очевидно, что между этими подходами существует разница в производительности.Если вложенные объекты огромны, и вы редко их используете, разделить документ будет проще (однако вы можете извлечь только часть документа).С другой стороны, если весь документ используется большую часть времени, будет дешевле получить его один раз (с нетерпением) вместо выполнения нескольких запросов к базе данных.
Также MongoDB не является транзакционным как таковым , однако модификации одного документа являются атомарными.