Hướng dẫn sử dụng mongodb compass

  1. giới thiệu về mongoDB - MongoBD là CSDL thuộc NoSql. - MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ rất nhanh. So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng các document thay cho row trong RDBMS. - Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định. - VD về cơ bản về mongoDB { _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials point', url: 'http://www.tutorialspoint.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15), like: 0 }, { user:'user2', message: 'My second comments', dateCreated: new Date(2011,1,25,7,45), like: 5 } ] } II. Các câu lệnh cơ bản trong MongoDB 1. Tạo một csdl use vd: use test; 2. show tất cả databases show dbs 3. Xóa 1 databases use db.dropDatabase() 4. Collection(tạo mảng trong cở sở dữ liệu quan hệ) 4.1 Tạo collection db.createCollection('', {option}) VD:db.createCollection('students'); - show tất cả collections: show collections - option: + capped(boolean)giới hạn bản ghi: mặc định là false + autoIndexID(boolean): tự động tạo chỉ mục trên Id field. Mặc định là false + size:(number)chỉ định kích thước tối đa tính bằng byte(nếu set capped là true thì cần chỉ định trường này) + max(number) chỉ định số lượng bản ghi tối đa. 4.2 Xóa collection db.COLLECTION_NAME.drop() 4.3 Các loại dữ liệu Chuỗi: Đây là kiểu dữ liệu được sử dụng phổ biến nhất để lưu giữ dữ liệu. Chuỗi trong MongoDB phải là UTF-8 hợp lệ. Số nguyên: Kiểu dữ liệu này được sử dụng để lưu một giá trị số. Số nguyên có thể là 32 bit hoặc 64 bit phụ thuộc vào Server của bạn. Boolean: Kiểu dữ liệu này được sử dụng để lưu giữ một giá trị Boolean (true/false). Double: Kiểu dữ liệu này được sử dụng để lưu các giá trị số thực dấu chấm động. Min/ Max keys: Kiểu dữ liệu này được sử dụng để so sánh một giá trị với các phần tử BSON thấp nhất và cao nhất. Mảng: Kiểu dữ liệu này được sử dụng để lưu giữ các mảng hoặc danh sách hoặc nhiều giá trị vào trong một key. Timestamp: Giúp thuận tiện cho việc ghi chép hoặc đánh dấu thời điểm một Document được sửa đổi hoặc được thêm vào. Object: Kiểu dữ liệu này được sử dụng cho các Document được nhúng vào. Null: Kiểu dữ liệu này được sử dụng để lưu một giá trị Null. Symbol: Kiểu dữ liệu này được sử dụng giống như một chuỗi, tuy nhiên, nói chung nó được dành riêng cho các ngôn ngữ mà sử dụng kiểu symbol cụ thể. Date : Kiểu dữ liệu này được sử dụng để lưu giữ date và time hiện tại trong định dạng UNIX time. Bạn có thể xác định date time riêng cho bạn bằng việc tạo đối tượng Date và truyền ngày, tháng, năm vào trong đó. Object ID: Kiểu dữ liệu này được sử dụng để lưu giữ ID của Document. Binary data: Kiểu dữ liệu này được sử dụng để lưu giữ dữ liệu nhị phân. Code: Kiểu dữ liệu này được sử dụng để lưu giữ JavaScrip code vào trong Document. Regular expression: Kiểu dữ liệu này được sử dụng để lưu giữ Regular Expresion. 5. Thêm một bản ghi mới. db.students.insert({ name:'theanh', gender:'male'}) 6. Sửa một bản ghi. db.students.update({_id: 1}, {$set:{ name:'theanh update' }}) 7. xóa một bản ghi db.studens.remove({_id:1}) 8. Xem toàn bộ bản ghi db.COLLECTION_NAME.find() - xem theo đúng định dạng db.COLLECTION_NAME.find().pretty() db.students.find().pretty() - tim đúng 1 bản ghi db.COLLECTIONNAME.findOne() vd: db.mycol.findOne({title: "MongoDB Overview"}) - Tìm kiếm theo yêu cầu Equality {:{$eg;}} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point' Less Than {:{$lt:}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50 Less Than Equals {:{$lte:}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50 Greater Than {:{$gt:}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50 Greater Than Equals {:{$gte:}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50 Not Equals {:{$ne:}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50 Values in an array {:{$in:[, ,……]}} db.mycol.find({"name":{$in:["Raj", "Ram", "Raghu"]}}).pretty() Where name matches any of the value in :["Raj", "Ram", "Raghu"] Values not in an array {:{$nin:}} db.mycol.find({"name":{$nin:["Ramu", "Raghav"]}}).pretty() Where name values is not in the array :["Ramu", "Raghav"] or, doesn’t exist at all - Toán tử AND db.mycol.find({ $and: [ {:}, { :} ] }) Toán tử OR db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty() VD: 'where likes>10 AND (by = 'tutorials point' OR title = 'MongoDB Overview')' db.mycol.find({"likes": {$gt:10}, $or: [{"by": "tutorials point"}, {"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } -Toán tử NOT db.COLLECTION_NAME.find( { $not: [ {key1: value1}, {key2:value2} ] } ) VD: db.empDetails.find( { $not:[ 40 {"First_Name": "Radhika"}, {"Last_Name": "Christopher"} ] } ).pretty() { "_id" : ObjectId("5dd631f270fb13eec3963bef"), "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" } VD: LẤY bản ghi có tuổi ko lớn hơn 25 db.empDetails.find( { "Age": { $not: { $gt: "25" } } } ) { "_id" : ObjectId("5dd6636870fb13eec3963bf7"), "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" } 9. Tìm kiếm. db.students.find({name:'theanh update}) 10. III. Thiết kế mô hình dữ liệu Có hai loại: 1. Mô hình dữ liệu nhúng { _id: , Emp_ID: "10025AE336" Personal_details:{ First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "1995-09-26" }, Contact: { e-mail: "[email protected]", phone: "9848022338" }, Address: { city: "Hyderabad", Area: "Madapur", State: "Telangana" } } 2. mô hình dữ liệu chuẩn hóa Employee: { _id: , Emp_ID: "10025AE336" } Personal_details: { _id: , empDocID: " ObjectId101", First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "1995-09-26" } Contact: { _id: , empDocID: " ObjectId101", e-mail: "[email protected]", phone: "9848022338" } Address: { _id: , empDocID: " ObjectId101", city: "Hyderabad", Area: "Madapur", State: "Telangana" } --------------- CÁCH SỬ DỤNG MONGO CLOUD AWS I. Conect với Mongodb cloud - Whitelist là danh sách các địa chỉ có thể gởi thông tin sẽ được chấp nhận tự động (bởi trình phục vụ, bởi trình thư, bởi trình bảo mật). Bạn có thể sửa đổi tập tin whitelist để thêm địa chỉ thích hợp với trường hợp của mình, hay để gỡ bỏ địa chỉ không thích hợp hay không còn đáng tin lại. B1: Thiết lập bảo mật kết nối 1. Đầu tiên phải chọn 1 địa chỉ IP để đưa vào ds Whitelist 2. Tạo người dùng Mongodb cloud: nhập tên và password. Thế là xong bước Setup connection security B2: Chọn phương thức kết nối Ở đây có 3 phương thức để ta chọn: Kết nối với mongoDB shell, kết nối với một ứng dụng khác, kết nối với mongoDB compass => ta sử dụng mongoDB compass Xong bước số 2 B3: Kết nối Sẽ có 1 đường link để ta sao chép: mongodb+srv://TA_Books:@cluster0-vnt1r.mongodb.net/test Sau đó mở mongoDB compass lên. Dán link và thêm mật khẩu vào. Nhấn conect là ta đã hoàn thành xong kết nối với mongoDB Cloud