определена) • Студент – Имя – Фамилия – адрес – страна – область – город – улица – вуз – название – факультет – кафедра – группа • Студент – Успеваемость – Семестр-1 – Матанализ – курсовая – зачет – История – экзамен – Философия – экзамен – Семестр-2 – Структуры данных – Функциональный анализ – Линейная алгебра – Теория вероятностей
структуры • Поддержка типов JSON, в том числе, например, массивы • Обновление жесткой реляционной модели — довольно трудоемкая процедура, особенно, после того, как она внедрена (у гибкости тоже есть своя цена) • И т.п
— регулярные выражения • Без индекса поиск перебирает ВСЕ документы в коллекции • Для обычных полей поддерживаются разные конфигурации индексов • Для полнотекстового поиска специальный индекс — text • Для одной коллекции можно создать только один индекс text (может включать любые поля) • Ищет отдельные слова внутри предложений, но не части слов • Регистронезависимый поиск — в версиях >= 3.2
почти то же, что mongo shell – в версии >= 3.x сильно поменялось API по сравнению с 2.x • npm install mongoose www.npmjs.com/package/mongoose github.com/Automattic/mongoose • Оба ок, остановимся на mongodb (native)
mongodb version >= 3.1.9 var url = "mongodb://localhost:27017"; MongoClient.connect(url, function (err, client) { if (err) { console.log("Failed to connect: ", err); } else { console.log("Connected to ", url); var db = client.db("students-db"); var collection = db.collection("students"); [...] } });
mongodb version >= 3.1.9 var url = "mongodb://localhost:27017"; MongoClient.connect(url, function (err, client) { if (err) { console.log("Failed to connect: ", err); } else { console.log("Connected to ", url); var db = client.db("students-db"); var collection = db.collection("students"); [...] } });
2017-2018 год) • Реализация в PostgreSQL, MySQL, Oracle, MS SQL • Раньше было кто во что горазд, теперь это стандарт • Подробнее разберем позднее (TODO) • Или самостоятельно