Как я упоминал в одной из моих предыдущих
статей, целью которых является повышение осведомленности о концепции NoSQL и внедрение популярного NoSQL-решения MongoDB, документация MongoDB предоставляет достаточную информацию о
том, как настроить MongoDB на платформе (Linux, Mac OS X, Windows ) ты используешь.
Если вы успешно завершили установку, мы можем перейти от теории к практике. Теперь мы можем создавать наши первые записи, выполняя основные операции MongoDB (
операции CRUD ).
Приставка MongoDB создается консольным приложением, которое обладает всеми навыками управления. Поскольку MongoDB не имеет визуального инструмента для управления,
для этой цели существуют сторонние решения .
Прежде всего, нам нужно запустить
процесс-демон для управления консолью.
hakdogan:~ hakdogan$ mongodПосле запуска оболочки, которая будет обрабатывать запросы данных в фоновом режиме для MongoDB с помощью приведенной выше команды, мы должны запустить
оболочку mongo JavaScript на новом экране консоли, который был разработан для системных администраторов, чтобы выполнять запросы, crud и другие операции с базами данных.
hakdogan:~ hakdogan$ mongoЧтобы получить справку по команде help на этом этапе, новичкам будет полезно посмотреть, какая команда выполняет какие операции.
> help db.help() help on db methods db.mycoll.help() help on collection methods sh.help() sharding helpers rs.help() replica set helpers help admin administrative help help connect connecting to a db help help keys key shortcuts help misc misc things to know help mr mapreduce show dbs show database names show collections show collections in current database show users show users in current database show profile show most recent system.profile entries with time >= 1ms show logs show the accessible logger names show log [name] prints out the last segment of log in memory, 'global' is default use db_name set current database db.foo.find() list objects in collection foo db.foo.find( { a : 1 } ) list objects in foo where a == 1 it result of the last line evaluated; use to further iterate DBQuery.shellBatchSize = x set default number of items to display on shell exit quit the mongo shellВо-первых, давайте посмотрим на список существующих баз данных, который поставляется с установкой.
> show dbs local 0.078125GBДавайте теперь определим сценарий использования, а затем создадим базу данных, в которой будут размещаться коллекции, в которых мы будем выполнять операции crud.
сценарий Сохранение статей, опубликованных на kodcu.com, в виде документов (
не забывайте, что каждая запись в MongoDB действительно является документом ), которые имеют поля категории, заголовка, содержимого, даты, автора, тега; выполнение запросов, обновление и удаление операций на полях этих документов.
> use kodcu switched to db kodcuВ MongoDB нет команды create для создания базы данных, похожей на обычные базы данных sql. Нам это уже не нужно, потому что
MongoDB выполняет операцию создания, когда вы добавляете любую запись в определенную базу данных . Мы выполнили процесс определения базы данных с помощью приведенной выше команды
use kodcu . Как видно из вывода, мы также можем сделать выбор среди существующих баз данных командой use.
> article = { category: ["Articles"], title: "Lean Kanban Workshop", content: " Kanban system is an impressive approach in the field of software management for the last 10 years.", date: new Date('2013-04-11'), author: "Altuğ Bilgin Altıntaş", tags: [null]} { "category" : ["Articles"], "title" : "Lean Kanban Workshop", "content" : " Kanban system is an impressive approach in the field of software management for the last 10 years.", "date" : ISODate("2013-04-11T00:00:00Z"), "author" : "Altuğ Bilgin Altıntaş", "tags" : [null] } > db.articles.save(article)Мы создали
коллекцию статей (
как я упоминал в предыдущей статье, коллекции в MongoDB соответствуют таблицам в мире sql ) в базе данных kodcu с помощью команды
db.articles.save (article) и добавили ранее
определенный объект article в эту коллекцию. Таким образом, мы добавили нашу первую запись (документ) в MongoDB.
Мы получаем тот же результат с помощью следующей команды.
db.articles.insert({ category: [“Yazılar”], title: "Lean Kanban Workshop", content: " Kanban system is an impressive approach in the field of software management for the last 10 years.", date: new Date('2013-04-11'), author: "Altuğ Bilgin Altıntaş", tags: [null]})
> show dbs kodcu 0.203125GB local 0.078125GB > show collections articles system.indexes > db.articles.find() { "_id" : ObjectId("516a93d0b26184f91a8b985c"), "category" : [ "Articles" ], "title" : "Lean Kanban Workshop", "content" : " Kanban system is an impressive approach in the field of software management for the last 10 years.", "date" : ISODate("2013-04-11T00:00:00Z"), "author" : "Altuğ Bilgin Altıntaş", "tags" : [ null ] }Как видно, база данных Kodcu и коллекция статей в этой базе данных сформированы. Мы выводим записи в связанной коллекции, выполняя
вызов find () для коллекции. Значение, которое мы не ввели вручную, может привлечь ваше внимание, я имею в виду
значение id .
Каждый документ в MongoDB имеет уникальное поле идентификатора. Мы имеем в виду
поле _id здесь. Если какое-либо значение не назначено полю _id вручную, MongoDB назначает
уникальное значение идентификации типа ObjectId .
Мы ввели нулевое значение в поле тега в первой записи, которую мы создали, теперь давайте обновим это поле.
> db.articles.update({_id:ObjectId("516a93d0b26184f91a8b985c")}, {$set: {"tags": ["lean","kanban","training"]}}) > db.articles.find() { "_id" : ObjectId("516a93d0b26184f91a8b985c"), "author" : "Altuğ Bilgin Altıntaş", "category" : [ "Articles" ], "content" : "Kanban system is an impressive approach in the field of software management for the last 10 years.", "date" : ISODate("2013-04-11T00:00:00Z"), "tags" : [ "lean", "kanban", "training" ], "title" : "Lean Kanban Workshop" }Давайте добавим новые записи сейчас и посмотрим, как выполнять запросы к этим записям.
>db.articles.insert({ category: ["Articles"], title: "Take the reins with Backbone.js! – Free Webiner", content: "Backbone.js is a JavaScript library that helps your complicated Javascript code to be more structured and offers an environment in which development is more pleasant.", date: new Date('2013-04-10'), author: "Kodcu.Com", tags: [null]}) >db.articles.insert({ category: ["Java", "Tutorial", "Articles", "Software"], title: "Data Indexing with Java to Apache", content: "Hi all, I mentioned in my previous article the installation and configuration of Apache Solr, data indexing from command line to Solr and making query operations through this data.", date: new Date('2013-04-09'), author: "Cüneyt Yeşilkaya", tags: ["java", "data indexing with java to solr", "solr", "solrj"]}) >db.articles.insert({ category: ["NoSQL", "Yazılar"], title: "The Core MongoDB Operations", content: "By creating awareness about the concept of NoSQL...", date: new Date('2013-04-15'), author: "Hüseyin Akdoğan", tags: ["mongodb", "nosql"]})Давайте найдем статьи, написанные Altuğ Bilgin Altıntaş в текущих записях.
> db.articles.find({author: "Altuğ Bilgin Altıntaş"}) { "_id" : ObjectId("516a93d0b26184f91a8b985c"), "author" : "Altuğ Bilgin Altıntaş", "category" : [ "Articles" ], "content" : "Kanban system is an impressive approach in the field of software management for the last 10 years.", "date" : ISODate("2013-04-11T00:00:00Z"), "tags" : [ "lean", "kanban", "training" ], "title" : "Lean Kanban Workshop" }Здесь мы увидели, как сделать запрос в соответствии с желаемым полем, и эта особенность является одной из точек, отличающей MongoDB от других решений NoSQL, как я уже упоминал ранее. Под тем же названием я также упомянул, что MongoDB предлагает своим пользователям использовать (
регулярные выражения ) в запросах. В этом контексте, когда мы хотим выяснить статьи, в которых содержатся
операторы Backbone и
JavaScript , мы должны использовать такой синтаксис.
> db.articles.find({content: {$regex: 'Backbone.*JavaScript'}}) { "_id" : ObjectId("516a9432b26184f91a8b985d"), "category" : [ "Articles" ], "title" : "Take the reins with Backbone.js! – Free Webiner", "content" : "Backbone.js is a JavaScript library that helps your complicated Javascript code to be more structured and offers an environment in which development is more pleasant.", "date" : ISODate("2013-04-10T00:00:00Z"), "author" : "Kodcu.Com", "tags" : [ null ] }MongoDB предлагает довольно полезные 4 варианта при использовании
регулярных выражений . Один из них используется для запросов без учета прописных и строчных букв.
> db.articles.find({content: {$regex: 'backbone.*javascript', $options: 'i'}}) { "_id" : ObjectId("516a9432b26184f91a8b985d"), "category" : [ "Articles" ], "title" : "Take the reins with Backbone.js! – Free Webiner", "content" : "Backbone.js is a JavaScript library that helps your complicated Javascript code to be more structured and offers an environment in which development is more pleasant.", "date" : ISODate("2013-04-10T00:00:00Z"), "author" : "Kodcu.Com", "tags" : [ null ] }Наконец, давайте посмотрим, как удалить запись.
> db.articles.find() { "_id" : ObjectId("516a93d0b26184f91a8b985c"), "author" : "Altuğ Bilgin Altıntaş", "category" : [ "Articles" ], "content" : "Kanban system is an impressive approach in the field of software management for the last 10 years.", "date" : ISODate("2013-04-11T00:00:00Z"), "tags" : [ "lean", "kanban", "training" ], "title" : "Lean Kanban Workshop" } { "_id" : ObjectId("516a9432b26184f91a8b985d"), "category" : [ "Articles" ], "title" : "Take the reins with Backbone.js! – Free Webiner", "content" : "Backbone.js is a JavaScript library that helps your complicated Javascript code to be more structured and offers an environment in which development is more pleasant.", "date" : ISODate("2013-04-10T00:00:00Z"), "author" : "Kodcu.Com", "tags" : [ null ] } { "_id" : ObjectId("516a943bb26184f91a8b985e"), "category" : [ "Java", "Tutorial", "Articles", "Software" ], "title" : "Data Indexing with Java to Apache Solr’a Veri", "content" : " Hi all, I mentioned in my previous article the installation and configuration of Apache Solr, data indexing from command line to Solr and making query operations through this data..", "date" : ISODate("2013-04-09T00:00:00Z"), "author" : "Cüneyt Yeşilkaya", "tags" : [ "java", "data indexing with java to solr", "solr", "solrj" ] } { "_id" : ObjectId("516a9444b26184f91a8b985f"), "category" : [ "NoSQL", "Articles" ], "title" : "The Core MongoDB Operations", "content" : " By creating awareness about the concept of NoSQL...", "date" : ISODate("2013-04-15T00:00:00Z"), "author" : "Hüseyin Akdoğan", "tags" : [ "mongodb", "nosql" ] }
> db.articles.remove({_id:ObjectId("516a9444b26184f91a8b985f")})Операции, которые мы обсуждали и выполняли через консоль, также возможны с помощью языков программного обеспечения, которые поддерживает MongoDB. Если все в порядке, я хочу обсудить, как выполнять аналогичные операции, выполняемые здесь с MongoDB, предоставленным родным драйвером Java, в следующем уроке.
Реальный контент выше, можно получить в
ядре MongoDB операций