Скачать 395.5 Kb.
|
В этой работе мы познакомимся с документо-ориентированной СУБД MongoDB (http://www.mongodb.org). Эта СУБД кроссплатформенная и относится к категории свободного программного обеспечения (Open Source). Для управления данными используется язык JavaScript. Данные хранятся не в виде таблиц, а в виде коллекций документов. Документ – это объект, имеющий свойства, то есть пары «имя-значение». Главное свойство документа – это его идентификатор (код), который всегда играет роль первичного ключа. В одной коллекции могут быть совершенно разные документы с разным набором свойств, это и отличает документо-ориентированную БД от реляционной. Информация об объекте записывается в фигурных скобках, например: { name: "Вася", age: 16 } Этот объект имеет два свойства (поля) – свойство name со значением «Вася» и свойство age со значением 16. Такой текстовый формат записи называется JSON (англ. JavaScript Object Notation = запись объектов с помощью JavaScript). Свойства объекта могут быть списками значений (массивами), они перечисляются в квадратных скобках через запятую: { name: "Вася", age: 16, lang: ["C", "Pascal", "JavaScript"] } Здесь свойство lang – массив, в котором записаны названия языков программирования. Свойства могут сами быть объектами со своими свойствами, например: { name: "Вася", family: { mother: "Вера", father: "Петя" } } Свойство family содержит два внутренних свойства (поля): mother и father. Начало работы
db Ответ:
use blog Если этой базы данных раньше не было, она будет создана. Проверьте, что она действительно стала активной.
db.posts.insert ( документ ) Первая часть записи, «db», означает обращение к рабочей базе данных; вторая, «posts» - название коллекции (если такой коллекции нет, она будет создана), в скобках записываются свойства объекта-документа. В нашем примере в базе blog будет одна коллекция posts (сообщения, записи, «посты»). Для каждого поста нужно задать дату и текст. Добавьте одну запись следующим образом6: db.posts.insert ( {date: new Date("04/23/2013"), text: "Привет!"} ) Дата (свойство date) строится с помощью функции Date; ей передается символьная запись даты в формате, принятом в США (месяц/день/год).
show collections
db.posts.find() которая ищет и показывает все документы, входящие в коллекцию posts. Для вывода в красивом формате можно дополнительно вызвать функцию pretty (англ. приятный) db.posts.find().pretty() В этом случае, если список свойств документа не помещается в одну строку, он выводится в столбик: { "_id": ObjectId("5176abbc06a6380da34966a2"), "date": ISODate("2013-04-22T20:00:00Z"), "text": "Привет!" } СУБД автоматически добавила поле «_id» (идентификатор, код), которое представляет собой суррогатный первичный ключ и строится случайным образом с помощью функции ObjectId. Дата преобразована в формат Международной организации по стандартизации (ISO).
db.posts.remove() и добавим четыре новых поста в базу, указав явно идентификаторы7: db.posts.insert ( {_id: 1, date: new Date("04/23/2013"), text: "Привет!" } ) db.posts.insert ( {_id: 2, date: new Date("04/24/2013"), text: "Это второй пост." } ) db.posts.insert ( {_id: 3, date: new Date("04/25/2013"), text: "Это третий пост." } ) db.posts.insert ( {_id: 4, date: new Date("04/26/2013"), text: "Это четвёртый пост." } ) Убедитесь, что документы действительно добавлены в коллекцию. Поиск
db.posts.find( {_id: 2} )
$ne – не равно, $lt – меньше, $lte – меньше или равно, $gt – больше, $gte – больше или равно Например, найдем записи с идентификатором больше 2: db.posts.find( {_id: {$gt: 2} } ) Сколько документов найдено? Ответ:
db.posts.find({date: {$gte: new Date("04/24/2013")} })
db.posts.find( { _id: {$gt: 2}, date: {$gtе: new Date("04/26/2013")} } )
db.posts.find( { $where: "this._id > 2" } ) Здесь this – это объект (документ), который требуется проверить; через точку записывается название нужного поля. Оператору $where можно передать любую функцию на JavaScript, которая возвращает логическое значение (истинное, если условие отбора выполняется). Например, запрос, показанный в п. 10, можно было записать так: db.posts.find( { $where: function() { return this._id > 2 && this.date >= new Date("04/26/2013") } } ) Пара символов && в языке JavaScript обозначает логическую операцию «И», а символы || – логическую операцию «ИЛИ». Проверка на равенство записывается как «==», а условие «не равно» – как «!=».
Ответ: Сортировка
Отсортируйте документы по возрастанию даты db.posts.find().sort( {date: 1} ) а теперь по убыванию: db.posts.find().sort( {date: -1} ) Изменение
Функции update передаются два объекта в фигурных скобках: условие, позволяющее найти нужный документ, и свойства, которые у него нужно изменить. Попробуйте выполнить команду db.posts.update( {_id: 1}, {visible: false} ) и посмотрите, что получилось в результате. Ответ:
db.posts.update( {_id: 1}, {$set: {visible: false}} ) Примените эту команду и проверьте результат её выполнения. Обратите внимание, что сейчас в коллекции posts находятся документы с разной структурой: один из них имеет свойство visible, а остальные – нет. При этом никаких изменений в структуру базы данных вносить не пришлось.
Ответ:
db.posts.update( {visible: null}, {$set: {visible: true}}, {multi: true} ) Третий параметр – объект со свойством multi (англ. множественный), равным true (истина) разрешает изменение нескольких документов сразу (если его не указать, будет изменён только один документ – тот, который найден первым).
Ответ: Проверьте результат его работы.
Комментариев может быть много, поэтому новое свойство comments будет массивом. Для добавления нового элемента в массив используется специальный объект со свойство $push (англ. втолкнуть): db.posts.update( {_id: 2}, {$push: {comments: "Комментарий 1"} }) db.posts.update( {_id: 2}, {$push: {comments: "Комментарий 2"} }) db.posts.update( {_id: 2}, {$push: {comments: "Комментарий 3"} }) Когда выполняется первая из этих команд, у документа с идентификатором 2 еще нет свойства comments – оно будет создано автоматически.
var c = db.posts.find( {comments: {$exists: true}} ) Результат этого запроса не выводится на экран, а записывается в переменную c. Затем можно определить его длину (число найденных документов) с помощью функции length (англ. длина) и вывести на экран в цикле в формате JSON с помощью функции printjson: for(i = 0; i < c.length(); i++) printjson( c[i] ) Можно работать и с отдельными свойствами, например, вывести на экран даты всех найденных постов с помощью функции print: for(i = 0; i < c.length(); i++) print( c[i].date ) Удаление
Ответ:
db.posts.remove( {_id: 4} ) Выполните эту команду и проверьте её выполнение.
Ответ:
db.posts.drop()
Ответ:
Ответ: Дополнительная информация:
|
Список дисков, имеющихся в фонде читального зала средней школы №621... Открытая Математика Функции и Графики Сетевая версия, 1 cd, инструкция, dvd-box |
Название: Математика. Тесты. 2 класс Данное пособие содержит тесты различных видов по математике для второго класса к учебнику М. И. Моро и др системы «Школа России» |
||
Русский язык математика история этика природоведение география Математика. 5-9 классы (М. Н. Перова — научный редактор программы; Б. Б. Горскин, А. П. Антропов, М. Б. Ульянцева) |
Русский язык математика история этика природоведение география естествознание... Математика. 5—9 классы (М. Н. Перова — научный редактор программы; Б. Б. Горскин, А. П. Антропов, М. Б. Ульянцева) |
||
Рабочая программа по математике 4 класс (фгос) Планирование составлено на основе авторской программы М. И. Моро, М. А. Бантова, Г. В. Бельтюкова. (Математика. Рабочие программы.... |
1 Потребительские свойства стиральных машин Классы выставляются в диапазоне от а до G, где класс d примерно соответствует оценке "удовлетворительно", класс c "хорошо", класс... |
||
Цели и задачи Участники соревнований: по ориентированию: мж 5-6 класс и младше, мж 7-8 класс, мж 9-11 класс, мж э |
Мастер –класс учителя математики Петуховой лв Понятно, что математика, как наука, не нужна большинству людей. Ведь в обыденной жизни вряд ли кто-либо будет применять логарифмы,... |
||
И основная мысль текста; микротемы, план текста; деление текста на... Федеральном базисном (образовательном) учебном плане для образовательных учреждений Российской Федерации (вариант 1). Обязательное... |
Учебное пособие для обучающихся в спбгу по направлениям астрономия,... Учебное пособие для обучающихся в спбгу по направлениям астрономия, информатика, математика, механика, прикладная математика, физика,... |
||
Содержание рабочей программы пояснительная записка цели и задачи... «Описательная статистика. Вероятность. Комбинаторика» из раздела «Вероятность и статистика» и ориентирована на учебник «Математика.... |
Математика и информатика часть II. Информатика Пособие для студентов Рейтинг и оценка уровня знаний студентов по дисциплине «Математика и информатика» 5 |
||
Объявляет набор учащихся на июль 2016 года о школе Каждый ученик может учиться только на одном потоке. На математический поток принимаются учащиеся, окончившие 6, 7, 8, 9 или 10 класс,... |
Поурочные разработки по русскому языку: 5 класс Поурочные разработки по русскому языку: 5 класс: к учебнику Т. А. Ладыженской и др. «Русский язык. 5 класс» / Е. А. Влодавская. 2-е... |
||
Рабочая программа по дисциплине «Системное и прикладное программное... Рабочая пpогpамма составлена на основе на основании на основании решения кафедры «Вычислительная техника» Ульяновского государственного... |
Радио рсн, новости, 10. 10. 2008, Минаева Наталья, 16: 00 10 Ведомости, Наталья Костенко Анастасия Корня ведомости, 13. 10. 2008, №193, Стр. А2 18 |
Поиск |