Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемАнатолий Ипутатов
1 mongodb.org NoSQL база данных
2 Олег Качан Независимый разработчик twitter.com/maximalno
3 NoSQL = Not only SQL
4 NoSQL базы данных Key-value (Redis, Dynamo, MemcacheDB, Voldemort) Document (MongoDB, CouchDB, Riak) Wide Column (BigTable, Cassandra, HBase) Graph (Neo4j, InfiniteGraph)
5 MongoDB Быстрая база данных (C++) Устоявшийся проект, выпущена версия 2.0 Open-source, но разрабатывается и поддерживается компанией 10gen Одно из наиболее универсальных решений
6 Поддержка MongoDB языками C/C++ Java.NET Javascript Perl PHP Python Ruby Официальные драйверы Erlang Scala Haskell Драйверы open-source ActionScript, Clojure, Delphi, Node.js, F#, Go, Groovy, Lua, Objective C, Smalltalk и т.д.
7 Кто использует MongoDB? Craigslist
8 Кто использует MongoDB?
9 @hipsterhacker If it's not MongoDB, it's the WrongoDB Retweeted and 100+ others
10 MongoDB Документная база данных
11 Каждому ключу соответствует документ { first_name: Oleg, last_name: Kachan, contacts: { twitter: maximalno, }, skills: [php, node.js, mongodb] } _id: ObjectId(4daf…) =>
12 Организация данных SQLMongoDB База данных ТаблицаКоллекция Строка/записьДокумент
13 Измение мышление Нет JOIN Избыточность данных вместо нормализации Контроль данных из приложения, а не из базы Навыки работы с SQL базами не подходят для NoSQL
14 MongoDB Чем лучше?
15 Сравнение с другими решениями Функциональность Производительность Memcached Key/value MongoDB RDBMS
16 Преимущества Документно-ориентированная база данных Быстрое чтение и особенно запись Широкая по сравнению с другими NoSQL функциональсть Масштабирование из коробки По чтению (Master/slave, Replica sets) По записи (Sharding)
17 Но зачем? Области применения
18 MongoDB Не подходит: если вы используете JOINы если вам необходимы транзакции Подходит: хранение разнородных данных хранение геоданных хранение логов и статистики
19 Пример HTML-страница Новость Карточка товара Система управления контентом
20 Пример Система управления контентом SQL 3 таблицы: pages, news, goods MongoDB 1 коллекция: documents
21 Пример Система управления контентом Страница { type: page, content: Текст на странице }
22 Пример Система управления контентом Новость { type: news, date: new Date(), header: Заголовок, teaser: Краткий текст, content: Полное содержание }
23 Пример Система управления контентом Карточка товара { type: good, name: Телевизор price: 30000, features: { lcd: 1, led: 0 }, categories: [ home, tv ] }
24 MongoDB Подробнее
25 Организация данных
26 Типы данных BSON String Integer Double Date Byte array (бинарные данные) Boolean Null BSON Object
27 Ключ Каждому добавленному документу автоматически предоставляется уникальный ключ _id: ObjectId(47cc e3d95369d)
28 CRUD
29 Create SQL CREATE DATABASE vldc; CREATE TABLE vldc.users (`id` INT AUTO_INCREMENT PRIMARY KEY, `first_name` VARCHAR(50), `last_name` VARCHAR(50)); INSERT INTO vldc.users SET first_name = Oleg; MongoDB use vldc db.users.insert({ first_name: Oleg })
30 Read SQL SELECT * FROM users SELECT first_name FROM users MongoDB db.users.find() db.users.find({}, { first_name: 1 })
31 Read SQL SELECT * FROM users WHERE first_name = Oleg ORDER BY id DESC LIMIT 1,10 MongoDB db.users.find({first_name: Oleg }).sort({ _id: -1 }).skip(1).limit(10)
32 Операторы условий $gt, $lt, $gte, $lte $ne $in, $nin $mod $all $size $exists $type $not $where
33 Update SQL UPDATE users SET last_name = Kachan WHERE first_name= Oleg MongoDB db.users.update({ first_name: Oleg }, { last_name: Kachan }) db.users.update({ first_name: Oleg }, { $set: { last_name: Kachan } })
34 Операторы модификации $set $unset $inc $push $pushAll $addToSet $pop $pull $pullAll
35 Delete SQL DELETE FROM users WHERE id = 1 DELETE FROM users WHERE first_name = Oleg MongoDB db.users.remove({ _id: ObjectId(4df8fb81ed4cadd6271c0000) }) db.users.remove({ first_name: Oleg})
36 Создание индексов SQL ALTER TABLE `users` ADD INDEX (`first_name`) MongoDB db.users.ensureIndex({ first_name: 1 }) // по возрастанию db.users.ensureIndex({ first_name: -1 }) // по убыванию
37 Гео-индекс MongoDB db.places.ensureIndex({ location: 2d } Поиск при помощи операторов $near – поиск объектов с сортировкой, самые близкие - первые $box – поиск объектов в заданном квадрате $center – поиск объектов в заданном радиусе
38 Спасибо! Ответы на вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.