Mongodb

Install Key sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 Create a list file for mongodb for ubuntu echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list Reload local package database apt-get update Install mongodb package sudo apt-get install -y mongodb-org=2.6.9 mongodb-org-server=2.6.9 mongodb-org-shell=2.6.9 mongodb-org-mongos=2.6.9 mongodb-org-tools=2.6.9 Pin a specific version echo "mongodb-org hold" | sudo dpkg --set-selections echo "mongodb-org-server hold" | sudo dpkg --set-selections echo "mongodb-org-shell hold" | sudo dpkg --set-selections echo "mongodb-org-mongos hold" | sudo dpkg --set-selections echo "mongodb-org-tools hold" | sudo dpkg --set-selections Install trên Centos [mongodb-org-3.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=1 [mongodb-org-2.6] name=MongoDB 2.6 Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1 yum install mongo-10gen mongo-10gen-server Kết nối db mongo Show list database show dbs Chuyển database use [dbname] Hiện danh sách các collection db.getCollectionNames() Insert 1 Document (Insert lần đầu sẽ tự động tạo Database + Collection) db.ngon.insert({name: "Hoang Ha", age: "30", address: "6996 Cao Thang"}) Khi insert nó cũng tự động sinh ra 1 ID duy nhất Find db.ngon.find() Tìm kiếm toàn bộ document trong collection "ngon" Tìm kiếm theo điều kiện db.ngon.find({"name" : "ha"}, {age: 1, _id: 0}) collec query criteria modifier Collection : Điều Kiện: Giá trị trường trả về Điều kiện là số 1 tương ứng với trường cần lấy - Đứng trước Điều kiện là số 0 tương ứng với trường không cần lấy - Đứng sau Mặc trường ID sẽ hiện db.ngon.find({age : {$lt:"31"}}, {age:1, name: 1, _id: 0}) Mặc định thì khi find chỉ hiện 20 giá trị đầu tiên Mặc định sau 10' thì cursor sẽ tự hủy. Để set lại, tuy nhiên sẽ phải hủy manual var myCursor = db.inventory.find().addOption(DBQuery.Option.noTimeout); Update db.ngon.update({age: {$gt: "18"}}, {$set: {address : "Cao Thang"}}) Điều kiện Set giá trị Mặc định nó sẽ tìm từ trên xuống và chỉ thực hiện 1 document db.ngon.update({age: {$gt: "18"}}, {$set: {address : "Cao Thang"}}, {multi:true}) Để thực hiện toàn bộ các document thì thêm multi:true Delete db.ngon.remove({address: "169 Cao Thang"}) Delete database db.dropDatabase() Backup Cơ chế lưu dữ liệu của mongo tương đương MyIsam của Mysql, nên khi cần chỉ cần copy file database sang server khác + phân quyền + restart mongo là tự nhận. mongodump Sẽ backup toàn bộ database vào thư mục dump mongodump --out /home --collection ngon --db test Backup chỉ 1 collection và chỉ định đầu ra mongodump --host 192.168.182.128 --port 27017 -out /root/test Backup remote host mongorestore [directory_dump] Restore lại toàn bộ database mongorestore --db cuchuoi cuchuoi/ Restore lại database cuchuoi vào database cuchuoi Tạo user quản trị use admin db.createUser({ user: "SuperAdmin", pwd: "123456", roles: [ { role: "readWrite", db: "test" } ] }) db.createUser({ user: "SuperAdmin1", pwd: "123456", roles: [ { role: "read", db: "test" } ] }) Truy cập mongo -u test -p password localhost:27017/test Các loại role trên Mongo read, readWrite, dbAdmin, userAdmin, clusterAdmin, readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase Thêm log query vào file log. File cấu hình thêm diaglog = 3 verbose=true Replica set Sửa file config nojournal = true port = 27017 bind_ip = 192.168.182.128 fork = true replSet = rsName Truy cập mongo rs.initiate() Add các secondary vào rs.add(“ip_of_secondary_node_1”) Kiểm tra trạng thái rs.status() Kiểm tra từng máy và sự đồng bộ database rs.isMaster Lưu ý: Với cấu hình trên thì khi server Primary mà down, thì secon sẽ trở thành Primary. Sau khi Primary up, thì sẽ bị thành Secon

Share this :

Previous
Next Post »