Закрепление: синхронизация данных
Ответ: репликация.Денормализация меняет модель данных, унификация не является механизмом синхронизации, шардирование делит данные по узлам.
Summary session 18 повторяет репликацию, цели репликации, синхронный и асинхронный подходы, CAP и ACID.
Репликация нужна для надёжности, отказоустойчивости и распределения нагрузки чтения.
Синхронная репликация держит копии актуальными, но добавляет задержку.
Асинхронная репликация быстрее для записи, но допускает отставание копии.
CAP описывает ограничение распределённых систем: Consistency, Availability, Partition Tolerance.
ACID описывает свойства транзакций: Atomicity, Consistency, Isolation, Durability.
В домашке 18 разбираются Hawaii в sample_airbnb и фильмы imdb > 8 за 2015–2023.
Топ-3 ошибки: путать Consistency CAP и ACID, считать $out индексом, забывать $match перед $group.
Ответ: репликация.Денормализация меняет модель данных, унификация не является механизмом синхронизации, шардирование делит данные по узлам.
Ответ: createIndex().dropIndex() удаляет индекс, explain() анализирует план выполнения, ensureIndex() исторически встречается в старых материалах, но в курсе используем createIndex().
db.listingsAndReviews.aggregate([
{ $match: { "address.market": { $in: ["Oahu", "Maui", "Kauai", "The Big Island"] } } },
{ $group: { _id: null, avgPrice: { $avg: "$price" } } }
])Источник разрешает перечислить возможные острова через market.
db.movies.aggregate([
{ $match: { "imdb.rating": { $gt: 8 }, year: { $gte: 2015, $lte: 2023 } } },
{ $sort: { "imdb.rating": -1 } },
{ $group: { _id: null, count: { $sum: 1 }, topRating: { $first: "$imdb.rating" }, topTitle: { $first: "$title" } } }
])Сортировка перед $group нужна, чтобы $first взял фильм с максимальным рейтингом.