Лучшее руководство по отношения MongoDB в 2024 году. В этом руководстве вы можете изучить Встроенные отношения,Тип задания отношения,

отношения MongoDB

MongoDB отношения выражается взаимосвязь между несколькими документами в логике.

Вы можете установить контакт путем встраивания и ссылки между документами.

Отношения MongoDB может быть:

  • 1: 1 (1: 1)
  • 1: N (1-много)
  • N: 1 (несколько пар 1)
  • N: N (многие ко многим)

Далее мы рассмотрим связь между пользователем и адресом пользователя следующий.

Пользователь может иметь несколько адресов, это один ко многим.

Ниже приведен простой конфигурации пользователя документа:

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "name": "Tom Hanks",
   "contact": "987654321",
   "dob": "01-01-1991"
}

Ниже приводится простая структура адрес документа:

{
   "_id":ObjectId("52ffc4a5d85242602e000000"),
   "building": "22 A, Indiana Apt",
   "pincode": 123456,
   "city": "Los Angeles",
   "state": "California"
} 

Встроенные отношения

Используя встроенный метод, мы можем встроить адрес пользователя к документу пользователя:

   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address": [
      {
         "building": "22 A, Indiana Apt",
         "pincode": 123456,
         "city": "Los Angeles",
         "state": "California"
      },
      {
         "building": "170 A, Acropolis Apt",
         "pincode": 456789,
         "city": "Chicago",
         "state": "Illinois"
      }]
} 

Приведенные выше данные хранятся в одном документе, вы можете более легко получить доступ и сохранить данные. Вы можете запросить адрес пользователя:

>db.users.findOne({"name":"Tom Benzamin"},{"address":1})

Примечание: Приведенный вышеБД запроса указывает на базу данных и пользователейи коллекций.

Недостатком этой структуры данных является то, что, если пользователи и адресовать увеличивая объем данных, становится все больше и больше, будет влиять на скорости чтения и записи.

Тип задания отношения

Тип задания отношения часто используется в конструкции подход базы данных, файлы пользовательских данных и файлов данных адрес пользователя отдельно строить отношения по НТДидентификатор поля.

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address_ids": [
      ObjectId("52ffc4a5d85242602e000000"),
      ObjectId("52ffc4a5d85242602e000001")
   ]
}

В приведенном вышепримере, address_ids документ , содержащий поле объект пользовательского идентификатора массива адрес пользователя (ObjectId).

Мы можем читать эти объекты ID-адрес пользователя (ObjectId), чтобы получить подробную информацию об адресе пользователя.

Этот метод требует два запроса, адрес первого объекта запроса идентификатор пользователя (ObjectID), второй адрес для получения дополнительной информации по запросу пользователя по номеру.

>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})
>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})
отношения MongoDB
10/30