Thông tin tài liệu
CHỦ ĐỀ CƠ SỞ DỮ LIỆU MONGODB Hà Nội, 2012 Giảng viên PGS.TS. Nguyễn Hà Nam Học viên Ngô Thị Nga Trần Thị Then 1 Nội dung !"#$%&' ()$'*+,' 2 -.$#/ 012314256 07/'89: '5$;<=> !',?@ )9*9A25 B"8C$CD EF?+:@*G)HI,) 3 9JK'99 LD'!/'82M2@ N-O" ,6P 01Q125 4 5 !"#$%& ' RSTT U!)I2&H''/G -3!)%V"W L +7 6 !"#()*+, Mongo SQL collection table BSON document row BSON field column index index shard partition shard key partition key embedding và linking join _id field primary key aggregation group by 7 !"#-+, #X)!)9*J+9 I RU2&VYZ'99ZVZL9$['2\Z] +7B^I:_)9*J+9 RU2&VYZ'99ZVZL9$['2\Z$ZKZV`] 8AP =V {"greeting" : "Hello, world!", "foo" : 3} # {"foo" : 3, "greeting" : "Hello, world!"} !"#$% &'%())* + ,-)%. {"greeting" : "Hello, world!", "greeting" : "Hello, MongoDB!"} –không hợp lệ 8 !"##. /0' 1 @8B+7 9Ja'99V+7B42QB ^3" ! '5'b8A X) {"greeting" : "Hello, world!"} {"foo" : 5} 8A X)" !;"C/GJ@8D caJd 9 2 !"#34)4056 '1BGefg RD"P !ef9gI,$AhB 88A X)e9g25i 01),)":B8A X) 10 [...]... Đối tượng biểu thức truy vấn db. users.find({}) db. users.find({'last_name': 'Smith'}) Có thể thêm vào các tham số db. users.find({last_name: 'Smith'}, {'ssn': 1}); db. users.find({}, {thumbnail:0}); (_id luôn được trả về ngay cả khi không yêu cầu) Sắp xếp db. users.find({}).sort({last_name: 1}); 27 4.2 MongoDB – Truy vấn(tt) Bỏ qua và giới hạn để phân trang db. users.find().skip(20).limit(10);... {y:1}}) db. runCommand({dropIndexes:'foo', index : '*'}) 21 3.2.5 ReIndex Xây dựng lại tất cả các chỉ mục cho bộ sưu tập db. myCollection.reIndex () // hoặc: db. runCommand ({reIndex: 'myCollection'}) Dùng khi không gian đĩa được sử dụng bơi các chỉ mục có vẻ lớn bất thường reIndex sẽ bị chậm với các bộ sưu tập lớn 22 4 MongoDB – Sao chép Để dự phòng, mơ rộng đọc, sao lưu nóng… Sao chép dữ. .. đánh chỉ mục db. things.ensureIndex({firstname:1}, {unique:true}); db. things.save({lastname: "Smith"}); db. things.save({lastname: "Jones"}); //lỗi db. things.ensureIndex({firstname:1},{unique:true, dropDups:true}) 20 3.2.4 Xóa chỉ mục Xóa tất cả các chỉ mục trên bộ sưu tập: db. collection.dropIndexes(); Xóa chỉ mục đơn: db. collection.dropIndex({x: 1, y: -1}) Chạy trực tiếp: db. runCommand({dropIndexes:'foo',... vài văn bản trong bộ sưu tập sẽ không được trả về db. people.ensureIndex({title: 1}, {sparse: true}) db. people.save({name:"Jim"}) db. people.save({name:"Sarah", title:"Princess"}) db. people.find({title:{$ne:null}}).sort({title:1}) // chi tra ve Sarah 19 3.2.3 Chỉ mục duy nhất Đảm bảo không có 2 văn bản có cùng giá trị tại khóa được đánh chỉ mục db. things.ensureIndex({firstname: 1, lastname: 1},... Trong MongoDB: Trường _id được đánh chỉ mục tự động Những trường dùng để tìm kiếm, sắp xếp nên được đánh chỉ mục Thêm chỉ mục làm chậm quá trình ghi và không làm chậm quá trình đọc Sử dụng nhiều chỉ mục với những bộ sưu tập mà tỉ lệ read:write cao Với những bộ sưu tập mà ghi nhiều hơn đọc, sử dụng chỉ mục là rất tốn kém 15 3.2 MongoDB – Chỉ... db. students.ensureIndex({name:1}); Hàm ensureIndex() chỉ khơi tạo chỉ mục nếu nó chưa tồn tại Để kiểm tra việc tồn tại chỉ mục trên bộ sưu tập students: db. students.getIndexes(); 16 3.2 MongoDB – Chỉ mục(tt) Chỉ mục mặc định _id Luôn được tạo ra, không thể xóa Là duy nhất cho các khóa của nó Các khóa nhúng Có thể đánh chỉ mục trên các khóa trong văn bản nhúng db. students.ensureIndex({"address.city":... số luật cơ bản Đối tượng ơ mức cao nhất, có bộ sưu tập riêng Các đối tượng miêu tả chi tiết thường được nhúng Các đối tượng có chứa quan hệ nên được nhúng Quan hệ nhiều – nhiều thường được tham chiếu Nhúng – khó tham chiếu hơn các đối tượng mức cao Nhúng – khó có một cái nhìn mức hệ thống Ví dụ: Sẽ dễ thực hiện truy vấn tìm 100 sinh viên có điểm cao nhất hơn nếu Score không bị...3.1 MongoDB – Thiết kế lược đô 11 Nhúng và tham chiếu Việc nhúng các đối tượng hiệu quả hơn nhiều so với lập bảng riêng Tham chiếu chậm hơn nhúng, tại sao? print( students.address.city ) (Phép toán này sẽ luôn được thực hiện nhanh nếu Address là một đối tượng nhúng, và được lưu ở RAM nếu Student được lưu ở RAM) 12 a Thiết kế lược đô- Một số luật cơ bản Đối... Sao chép dữ liệu không đồng bộ giữa các máy chủ Có hai hình thức sao chép Master-Slave Replication Replica Sets 23 Sao chép – Master Slave Replication 24 Sao chép – Master Slave Replication 25 Sao chép – Replica Sets Là một cụm master-slave tự động chịu lỗi Không có 1 master cố định: một master được bầu chọn và có thể thay đổi đến nút khác nếu master bị sập 26 4.2 MongoDB – Truy vấn... mục có thể là bất kỳ loại nào, bao gồm cả văn bản (Giá trị của trường được đánh chỉ mục của văn bản là một mảng MongoDB đánh chỉ mục mỗi phần tử của mảng đo)) 17 3.2.1.Chỉ mục hỗn hợp các khóa Hỗ trợ đánh chỉ mục hỗn hợp nhiều khóa db. things.ensureIndex({j:1, name:-1}); Khi khơi tạo một chỉ mục, số đi cùng với khóa là hướng của chỉ mục 1: tăng dần, -1: giảm dần . CHỦ ĐỀ CƠ SỞ DỮ LIỆU MONGODB Hà Nội, 2012 Giảng viên PGS.TS. Nguyễn Hà Nam Học viên Ngô Thị Nga Trần Thị Then 1 Nội. ,-)%. {"greeting" : "Hello, world!", "greeting" : "Hello, MongoDB!"} –không hợp lệ 8 !"##. /0' 1 @8B+7 9Ja'99V+7B42QB ^3". !"#$%& ' RSTT U!)I2&H''/G -3!)%V"W L +7 6 !"#()*+, Mongo SQL collection table BSON document row BSON field column index index shard partition shard
Ngày đăng: 08/07/2015, 16:08
Xem thêm: BÀI TẬP LỚN CƠ SỞ DỮ LIỆU NÂNG CAO TÌM HIỂU VỀ MONGO DB, BÀI TẬP LỚN CƠ SỞ DỮ LIỆU NÂNG CAO TÌM HIỂU VỀ MONGO DB, MongoDB – Thiết kế lược đồ, b. Thiết kế lược đồ- Chỉ mục