Nama MongoDB berasal dari Humongo kami DB.
Ini adalah database NoSQL open source. MongoDB dikembangkan dan didukung secara komersial oleh perusahaan 10gen.
Fokus MongoDB adalah pada skalabilitas dan kinerja. MongoDB adalah database berorientasi dokumen bebas skema. Ini menyimpan data sebagai objek JSON. Tidak seperti database SQL tradisional, Anda tidak perlu mendefinisikan skema. Skema tertanam dalam dokumen data itu sendiri, sehingga memudahkan Anda untuk mengubah skema kapan saja tanpa khawatir mengubah dokumen sebelumnya yang dimuat. Performa dan skalabilitas tinggi dimungkinkan karena tidak ada gabungan, dan tidak ada transaksi multi-dokumen yang dilakukan di MongoDB. Ini juga menyediakan replikasi di seluruh server dengan kemampuan untuk melakukan fail-over secara otomatis. Anda juga dapat menskalakan di seluruh server untuk ketersediaan tinggi.
Artikel ini adalah bagian pertama dari serangkaian artikel di MongoDB.
Instal MongoDB menggunakan YUM
Menginstal MongoDB menggunakan yum cukup mudah.
Siapkan Repositori Yum 10gen
Pertama, tambahkan Repositori 10gen ke yum Anda seperti yang ditunjukkan di bawah ini.
# vi /etc/yum.repos.d/10gen.repo [10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1
Catatan:Di atas adalah untuk sistem 64-bit. Jika Anda menggunakan sistem 32-bit, arahkan baseurl pada file di atas ke http://downloads-distro.mongodb.org/repo/redhat/os/i686
Sekarang, jalankan “yum info” untuk melihat paket server mongo-10gen dan mongo-10gen.
# yum info mongo-10gen Name : mongo-10gen Arch : x86_64 Version : 2.2.2 Release : mongodb_1 Size : 43 M Repo : 10gen Summary : mongo client shell and tools URL : http://www.mongodb.org License : AGPL 3.0 # yum info mongo-10gen-server Name : mongo-10gen-server Arch : x86_64 Version : 2.2.2 Release : mongodb_1 Size : 6.7 M Repo : 10gen Summary : mongo server, sharding server, and support scripts URL : http://www.mongodb.org License : AGPL 3.0
Instal Paket Klien dan Server Mongo
Instal dua paket mongo-* ini seperti yang ditunjukkan di bawah ini.
# yum install mongo-10gen mongo-10gen-server Installing : mongo-10gen-2.2.2-mongodb_1.x86_64 Installing : mongo-10gen-server-2.2.2-mongodb_1.x86_64
Verifikasi file mongod.conf
Ini juga menginstal file default /etc/mongod.conf, dan skrip startup /etc/rc.d/init.d/mongod
File /etc/mongod.conf berisi nilai default berikut. Seperti yang Anda lihat di sini, file database mongo akan dibuat di bawah direktori /var/lib/mongo. Jika Anda ingin file DB dibuat di bawah direktori yang berbeda, ubah direktori dbpath di file mongod.conf.
# cat /etc/mongod.conf logpath=/var/log/mongo/mongod.log logappend=true fork = true dbpath=/var/lib/mongo pidfilepath = /var/run/mongodb/mongod.pid
Mulai server MongoDB
Mulai layanan mongod seperti yang ditunjukkan di bawah ini.
# service mongod start Starting mongod: forked process: 15968 all output going to: /var/log/mongo/mongod.log child process started successfully, parent exiting
Lihat file log untuk memastikan MongoDB dimulai dengan sukses. Secara default server MongoDB berjalan pada port 27017.
# cat /var/log/mongo/mongod.log Sat Jan 19 10:57:03 [initandlisten] MongoDB starting : pid=15968 port=27017 dbpath=/var/lib/mongo 64-bit host=centos Sat Jan 19 10:57:03 [initandlisten] db version v2.2.2, pdfile version 4.5 Sat Jan 19 10:57:03 [initandlisten] git version: d1b43b61a5308c4ad0679d34b262c5af9d664267 Sat Jan 19 10:57:03 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49 Sat Jan 19 10:57:03 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" } Sat Jan 19 10:57:03 [initandlisten] journal dir=/var/lib/mongo/journal Sat Jan 19 10:57:03 [initandlisten] recover : no journal files present, no recovery needed Sat Jan 19 10:57:03 [websvr] admin web console waiting for connections on port 28017 Sat Jan 19 10:57:03 [initandlisten] waiting for connections on port 27017
Gunakan Mongo Shell untuk terhubung ke MongoDB
Ketik "mongo" untuk meluncurkan shell mongo dan sambungkan ke MongoDB untuk melakukan beberapa operasi basis data. Ini akan menampilkan perintah "> ” tempat Anda dapat mengetik perintah klien mongo.
# mongo MongoDB shell version: 2.2.2 connecting to: test Welcome to the MongoDB shell. >
Perintah berikut akan memasukkan dokumen sampel ke dalam koleksi MongoDB yang disebut "situs". Ini mirip dengan perintah SQL “INSERT into”.
> doc1 = { name : "ramesh" }; > db.sites.insert( doc1 );
Berikut ini akan menampilkan semua dokumen dalam koleksi "situs" MongoDB. Ini mirip dengan perintah SQL “SELECT * from”.
> db.sites.find() { "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }
Instal MongoDB dari Sumber
Jika Anda ingin menginstal MongoDB dari sumber, ikuti langkah-langkah yang disebutkan di bawah ini.
Instal Pra-Persyaratan
Pastikan gcc-c++, dan paket glibc-devel sudah terinstal. MongoDB menggunakan scon untuk membangun kode sumber. Jadi, pastikan paket scons sudah terinstal.
# rpm -qa | egrep 'gcc-c++|glibc-devel|scons' gcc-c++-4.4.6-4.el6.x86_64 glibc-devel-2.12-1.80.el6_3.6.x86_64 scons-2.0.1-1.el6.noarch
Jika Anda tidak memiliki pra-persyaratan ini, instal.
# yum install gcc-c++ glibc-devel scons
Unduh MongoDB
Buka halaman unduhan MongoDB, dan unduh kode sumbernya. Versi stabil MongoDB saat ini adalah 2.2.2.
Setelah Anda memiliki tautan unduhan, Anda juga dapat menggunakan wget untuk mengunduh kode sumber secara langsung.
cd /usr/src wget http://downloads.mongodb.org/src/mongodb-src-r2.2.2.tar.gz tar xvfz mongodb-src-r2.2.2.tar.gz cd mongodb-src-r2.2.2
Bangun MongoDB menggunakan Scons
Scons mirip dengan membuat. Ketik “scons all” untuk membangun MongoDB dari sumber.
Harap dicatat bahwa ketika Anda menjalankan "scons all", itu hanya menggunakan satu CPU dan hanya menjalankan satu pekerjaan pada satu waktu untuk membangun kode sumber. Jadi, itu akan lambat. Jika Anda ingin scon menggunakan semua CPU dan menjalankan banyak tugas saat membangun, Anda harus menentukan jumlah tugas yang harus dijalankan.
Di sistem saya, saya memiliki 8 core. Jadi, saya menjalankan “scons -j 8 all” seperti yang ditunjukkan di bawah ini untuk membangun.
# scons -j 8 all scons: Reading SConscript files ... scons version: 2.0.1 python version: 2 6 6 'final' 0 Checking whether the C++ compiler works(cached) yes Checking for C header file unistd.h... (cached) yes Checking whether clock_gettime is declared... (cached) yes Checking for C library rt... (cached) yes Checking for C++ header file execinfo.h... (cached) yes Checking whether backtrace is declared... (cached) yes Checking whether backtrace_symbols is declared... (cached) yes Checking for C library pcap... (cached) no Checking for C library wpcap... (cached) no Checking if __malloc_hook is declared volatile... (cached) no scons: done reading SConscript files. .. Install file: "build/linux2/normal/mongo/test" as "test" scons: done building targets.
Setelah Anda membuat kode sumber, kita harus menginstalnya. Gunakan "scons install" untuk menginstal MongoDB. Secara default akan menginstalnya di bawah /usr/local/bin. Jika Anda ingin menginstal MongoDB di direktori yang berbeda, gunakan opsi “–prefix”.
Untuk menginstal MongoDB di bawah direktori /opt/mongo, jalankan perintah scons berikut.
# scons --prefix=/opt/mongo install
Seperti yang Anda lihat di bawah, MongoDB telah terinstal di bawah direktori /opt/mongo.
# ls -l /opt/mongo/ total 12 drwxr-xr-x. 2 root root 4096 Jan 19 13:33 bin drwxr-xr-x. 3 root root 4096 Jan 19 13:33 include drwxr-xr-x. 2 root root 4096 Jan 19 13:33 lib
Buat file /etc/mongod.conf
Buat file konfigurasi berikut yang akan digunakan oleh server MongoDB saat startup.
# cat /etc/mongod.conf logpath=/var/log/mongo/mongod.log logappend=true fork = true dbpath=/var/lib/mongo pidfilepath = /var/run/mongodb/mongod.pid
Dalam file di atas, parameter dbpath menunjukkan bahwa ketika kita memulai database MongoDB, itu akan membuat database yang diperlukan di bawah direktori /var/lib/mongo. Anda dapat mengubah jalur ini.
Buat direktori yang dirujuk oleh dbpath.
# mkdir -p /var/lib/mongo
Mulai Daemon MongoDB
Tambahkan /opt/mongo/bin/ ke variabel PATH.
# export $PATH=$PATH:/opt/mongo/bin/
Mulai mongodb seperti yang ditunjukkan di bawah ini dengan meneruskan lokasi file konfigurasi menggunakan opsi -f.
# mongod -f /etc/mongod.conf forked process: 20127 all output going to: /var/log/mongo/mongod.log child process started successfully, parent exiting
Jika Anda hanya menggunakan "mongod" tanpa argumen, itu akan memulai proses di latar depan. Saat Anda menutup terminal, server MongoDB Anda juga akan berhenti. Jadi, pastikan untuk mengeksekusi mongod dengan opsi -f seperti yang ditunjukkan di atas.
Verifikasi file log untuk memastikannya dimulai dengan benar. Secara default server MongoDB berjalan pada port 27017.
# cat /var/log/mongo/mongod.log Sat Jan 19 13:48:44 [initandlisten] MongoDB starting : pid=20127 port=27017 dbpath=/var/lib/mongo 64-bit host=centos Sat Jan 19 13:48:44 [initandlisten] db version v2.2.2, pdfile version 4.5 Sat Jan 19 13:48:44 [initandlisten] git version: nogitversion Sat Jan 19 13:48:44 [initandlisten] build info: Linux centos 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64 BOOST_LIB_VERSION=1_49 Sat Jan 19 13:48:44 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" } Sat Jan 19 13:48:44 [initandlisten] journal dir=/var/lib/mongo/journal Sat Jan 19 13:48:44 [initandlisten] recover : no journal files present, no recovery needed Sat Jan 19 13:48:44 [websvr] admin web console waiting for connections on port 28017 Sat Jan 19 13:48:44 [initandlisten] waiting for connections on port 27017
Gunakan Mongo Shell untuk terhubung ke MongoDB
Ketik "mongo" untuk meluncurkan shell mongo dan sambungkan ke MongoDB untuk melakukan beberapa operasi basis data. Ini akan menampilkan perintah "> ” tempat Anda dapat mengetik perintah klien mongo.
# mongo MongoDB shell version: 2.2.2 connecting to: test Welcome to the MongoDB shell. >
Perintah berikut akan memasukkan dokumen sampel ke dalam koleksi MongoDB yang disebut "situs". Ini mirip dengan perintah SQL “INSERT into”.
> doc1 = { name : "ramesh" }; > db.sites.insert( doc1 );
Berikut ini akan menampilkan semua dokumen dalam koleksi "situs" MongoDB. Ini mirip dengan perintah SQL “SELECT * from”.
> db.sites.find() { "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }
Pada artikel berikutnya dari seri ini, kami akan menjelaskan beberapa perintah MongoDB dengan contoh.