MongoDB basics in Russian
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

MongoDB basics in Russian

  • 6,565 views
Uploaded on

MongoDB basics in Russian / Основы MongoDB по-русски / ...

MongoDB basics in Russian / Основы MongoDB по-русски /
http://twitter.com/maximalno

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,565
On Slideshare
6,565
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
63
Comments
0
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 by @bowermanandrew and 100+ others
  • 10. MongoDB Документная база данных
  • 11. Каждому ключу соответствует документ
    • {
      • first_name: “Oleg”,
      • last_name: “Kachan”,
      • contacts: {
        • twitter: “maximalno”,
        • email: “683009@gmail.com”
      • }, skills: [“php”, “node.js”, “mongodb”]
    • }
    _id: ObjectId(“ 4daf… ” ) =>
  • 12. Организация данных SQL MongoDB База данных База данных Таблица Коллекция Строка/запись Документ
  • 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(“47cc67093475061e3d95369d”)
  • 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
  • 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. Спасибо! Ответы на вопросы