Mongodb 1 к 1 вложение - PullRequest
       15

Mongodb 1 к 1 вложение

0 голосов
/ 21 сентября 2011

Я новичок в разработке с mongodb. Это может быть нубийским вопросом, но мне было интересно, какая выгода от создания встраивания 1: 1 в mongodb? Почему полезно использовать атрибуты, содержащие данные вложения 1: 1?

В случае встраивания 1: n целесообразно организовать неопределенное количество объектов в документе.

Все ссылочные отношения хороши для запросов в и из документов.

Какие дополнительные функциональные возможности дают вложения 1: 1?

Спасибо

1 Ответ

1 голос
/ 21 сентября 2011

Вы думаете о следующем паттерне?

{
  name: {
    first: 'John',
    second: 'James',
    last: 'Jones'
  },
  age: 20,
  address: {
    street: '2nd',
    city: 'Warsaw'
  }
}

Как вы, очевидно, видите, причины прагматичны - группировка связанных полей (например, name и address) вместе более удобочитаема по сравнению стаблица с длинным плоским списком столбцов.Также вы избегаете чрезмерно длинных идентификаторов, используя точечные обозначения.

Очевидно, что между этими подходами существует разница в производительности.Если вложенные объекты огромны, и вы редко их используете, разделить документ будет проще (однако вы можете извлечь только часть документа).С другой стороны, если весь документ используется большую часть времени, будет дешевле получить его один раз (с нетерпением) вместо выполнения нескольких запросов к базе данных.

Также MongoDB не является транзакционным как таковым , однако модификации одного документа являются атомарными.

...