Установление связей между документами
На этом первом этапе вы создадите две отдельные коллекции и установите между ними связь. Мы смоделируем распространенный сценарий: базу данных библиотеки с коллекциями authors (авторы) и books (книги). Каждая книга будет ссылаться на своего автора.
Сначала откройте MongoDB Shell. Этот интерактивный интерфейс командной строки позволяет вам взаимодействовать с вашим экземпляром MongoDB.
mongosh
Оказавшись в оболочке, вы увидите приглашение test>. Давайте переключимся на новую базу данных с именем library_database. Если база данных не существует, MongoDB создаст ее для вас при первом сохранении данных.
use library_database
Теперь давайте создадим коллекцию authors, вставив два документа. Каждый документ имеет уникальный _id типа ObjectId, который мы будем использовать для ссылок.
db.authors.insertMany([
{
_id: ObjectId("660a1f5c9b8f8b1234567890"),
name: "Jane Austen",
nationality: "British"
},
{
_id: ObjectId("660a1f5c9b8f8b1234567891"),
name: "George Orwell",
nationality: "British"
}
]);
Вы должны увидеть подтверждение успешной вставки документов.
Пример вывода:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660a1f5c9b8f8b1234567890"),
"1": ObjectId("660a1f5c9b8f8b1234567891")
}
}
Далее создайте коллекцию books. В каждом документе книги поле author_id будет хранить ObjectId соответствующего автора из коллекции authors. Это создает связь между книгой и ее автором.
db.books.insertMany([
{
title: "Pride and Prejudice",
author_id: ObjectId("660a1f5c9b8f8b1234567890"),
year: 1813
},
{
title: "1984",
author_id: ObjectId("660a1f5c9b8f8b1234567891"),
year: 1949
}
]);
Пример вывода:
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("660b2a1c9b8f8b1234567892"),
"1": ObjectId("660b2a1c9b8f8b1234567893")
}
}
Теперь вы успешно создали две коллекции и связали документы в коллекции books с документами в коллекции authors. Оставьте MongoDB shell открытым для следующего шага.