Tạo chế độ xem là kết quả của việc áp dụng đã chỉ định cho bộ sưu tập hoặc chế độ xem nguồn. Lượt xem đóng vai trò là bộ sưu tập chỉ đọc và được tính toán theo yêu cầu trong quá trình đọc. MongoDB thực thi các thao tác đọc trên các khung nhìn như một phần của quy trình tổng hợp cơ bản
db db. createView có cú pháp như sau.
db.createView[, , , ]
Phương thức chấp nhận các tham số sau
ParameterTypeDescription view stringTên của view cần tạo. nguồn stringTên của bộ sưu tập nguồn hoặc chế độ xem để tạo chế độ xem từ đó. Tên không phải là không gian tên đầy đủ của bộ sưu tập hoặc chế độ xem; . e. không bao gồm tên cơ sở dữ liệu và ngụ ý cơ sở dữ liệu giống như dạng xem để tạo. đường dẫnmảngMột mảng bao gồm. db. createView tạo chế độ xem bằng cách áp dụng đường dẫn đã chỉ định cho nguồn . . . . . . . . . . . . collection or view.
Định nghĩa chế độ xem là công khai; . e. và giải thích các thao tác trên chế độ xem sẽ bao gồm đường dẫn xác định chế độ xem. Như vậy, tránh đề cập trực tiếp đến các trường và giá trị nhạy cảm trong định nghĩa dạng xem.
tùy chọntài liệuTùy chọn. Tùy chọn bổ sung cho phương phápTài liệu tùy chọn chứa trường tùy chọn sau
FieldTypeDescription đối chiếutài liệuKhông bắt buộc. Chỉ định cho chế độ xem
So sánh chuỗi trên dạng xem sử dụng đối chiếu mặc định của dạng xem. Một thao tác cố gắng thay đổi hoặc ghi đè đối chiếu mặc định của chế độ xem sẽ không thành công với lỗi
Đối chiếu cho phép người dùng chỉ định các quy tắc dành riêng cho ngôn ngữ để so sánh chuỗi, chẳng hạn như quy tắc cho chữ cái và dấu trọng âm
Nếu nguồn cơ bản là một bộ sưu tập, chế độ xem không kế thừa cài đặt đối chiếu của bộ sưu tập.
Nếu nguồn cơ bản là một chế độ xem khác, thì chế độ xem đó phải chỉ định cùng một cài đặt đối chiếu.
Tùy chọn đối chiếu có cú pháp sau
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
Khi chỉ định đối chiếu, trường ngôn ngữ là bắt buộc; . Để biết mô tả về các trường, xem.
3. 4 新版功能
db db. phương thức createView[] kết thúc thao tác lệnh sau.
db.runCommand[ { create: , viewOn: , pipeline: , collation: } ]
Các hoạt động liệt kê các bộ sưu tập, chẳng hạn như và , bao gồm các dạng xem trong kết quả đầu ra của chúng
重要
Định nghĩa chế độ xem là công khai; . e. và giải thích các thao tác trên chế độ xem sẽ bao gồm đường dẫn xác định chế độ xem. Như vậy, tránh đề cập trực tiếp đến các trường và giá trị nhạy cảm trong định nghĩa dạng xem.
Để xóa chế độ xem, hãy sử dụng phương thức trên chế độ xem
Cư xử
Lượt xem thể hiện hành vi sau
- Chế độ xem chỉ đọc;
- Lượt xem sử dụng chỉ mục của bộ sưu tập cơ bản
- Chế độ xem được coi là bị phân mảnh nếu bộ sưu tập cơ bản của chúng bị phân mảnh. Như vậy, bạn không thể chỉ định chế độ xem phân mảnh cho trường từ trong và hoạt động.
- Các lượt xem được tính toán theo yêu cầu trong các thao tác đọc và MongoDB thực thi các thao tác đọc trên các lượt xem như một phần của quy trình tổng hợp cơ bản. Như vậy, các khung nhìn không hỗ trợ các hoạt động như
- ,
- , vì phép toán $text trong tập hợp chỉ hợp lệ cho giai đoạn đầu tiên,
- giai đoạn chỉ huy và đường ống
- các thao tác trên các khung nhìn không hỗ trợ các toán tử chiếu sau
- Nếu quy trình tổng hợp được sử dụng để tạo chế độ xem chặn trường _id , tài liệu trong chế độ xem không có _id field.
- Bạn không thể đổi tên chế độ xem
- So sánh chuỗi trên dạng xem sử dụng đối chiếu mặc định của dạng xem. Một thao tác cố gắng thay đổi hoặc ghi đè đối chiếu mặc định của chế độ xem sẽ không thành công với lỗi
ví dụ
Tạo Chế độ xem từ một Bộ sưu tập đơn
Cho một bộ sưu tập khảo sát với các tài liệu sau.
{ _id: 1, empNumber: "abc123", feedback: { management: 3, environment: 3 }, department: "A" } { _id: 2, empNumber: "xyz987", feedback: { management: 2, environment: 3 }, department: "B" } { _id: 3, empNumber: "ijk555", feedback: { management: 3, environment: 4 }, department: "A" }
Thao tác sau đây tạo chế độ xem managerRatings với _id, feedback.management và bộ phận .
db.createView[ "managementFeedback", "survey", [ { $project: { "management": "$feedback.management", department: 1 } } ] ]
Truy vấn một View
Để truy vấn chế độ xem, bạn có thể sử dụng trên chế độ xem
db.managementFeedback.find[]
Hoạt động trả về các tài liệu sau
{ "_id" : 1, "department" : "A", "management" : 3 } { "_id" : 2, "department" : "B", "management" : 2 } { "_id" : 3, "department" : "A", "management" : 3 }
Thực hiện Aggregation Pipeline trên View
Thao tác sau đây thực hiện tổng hợp trên chế độ xem phản hồi quản lý , sử dụng $sortByCount to group by the department field and sort in descending order by the count of each distinct department:
db.managementFeedback.aggregate[[ { $sortByCount: "$department" } ] ]
Hoạt động trả về các tài liệu sau
________số 8_______
Tạo Chế độ xem từ nhiều Bộ sưu tập
Cho hai tập hợp sau
Bộ sưu tập đơn đặt hàng .
{ "_id" : 1, "item" : "abc", "price" : NumberDecimal["12.00"], "quantity" : 2 } { "_id" : 2, "item" : "jkl", "price" : NumberDecimal["20.00"], "quantity" : 1 } { "_id" : 3, "item" : "abc", "price" : NumberDecimal["10.95"], "quantity" : 5 } { "_id" : 4, "item" : "xyz", "price" : NumberDecimal["5.95"], "quantity" : 5 } { "_id" : 5, "item" : "xyz", "price" : NumberDecimal["5.95"], "quantity" : 10 }
Bộ sưu tập khoảng không quảng cáo .
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
0
db sau db. ví dụ createView[] chỉ định một giai đoạn để tạo chế độ xem từ sự kết hợp của hai bộ sưu tập.
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }1
Truy vấn một View
Để truy vấn chế độ xem, bạn có thể sử dụng trên chế độ xem
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }2
Hoạt động trả về các tài liệu sau
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }3
Thực hiện Aggregation Pipeline trên View
Thao tác sau đây thực hiện tổng hợp trên chế độ xem orderDetails , sử dụng $sortByCount to group by the item field and sort in descending order by the count of each distinct item:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }4
Hoạt động trả về các tài liệu sau
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }5
Tạo Chế độ xem với Đối chiếu Mặc định
Cho bộ sưu tập địa điểm với tài liệu sau.
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }6
Thao tác sau đây tạo chế độ xem, chỉ định ở cấp độ chế độ xem
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }7
So sánh chuỗi trên dạng xem sử dụng đối chiếu mặc định của dạng xem. Ví dụ: thao tác sau sử dụng đối chiếu của chế độ xem
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }8
Thao tác trả về 3 .
Một thao tác cố gắng thay đổi hoặc ghi đè đối chiếu mặc định của chế độ xem sẽ không thành công với lỗi
← db. createCollection[] db. currentOp[] →
© MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc