MongoDB cung cấp một tính năng đặc biệt được gọi là Phép chiếu. Nó cho phép bạn chỉ chọn dữ liệu cần thiết thay vì chọn toàn bộ dữ liệu từ tài liệu. Ví dụ, một tài liệu có 5 trường, tôi. e. ,
{ name: "Roma", age: 30, branch: EEE, department: "HR", salary: 20000 }
Nhưng chúng tôi chỉ muốn hiển thị tên và tuổi của nhân viên chứ không hiển thị toàn bộ chi tiết. Bây giờ, ở đây chúng tôi sử dụng phép chiếu để hiển thị tên và tuổi của nhân viên
Người ta có thể sử dụng phép chiếu với phương pháp db.collection.find[]
. Trong phương thức này, tham số thứ hai là tham số chiếu, được sử dụng để chỉ định trường nào được trả về trong tài liệu phù hợp
Trong MongoDB, phép chiếu có nghĩa là chỉ chọn dữ liệu cần thiết thay vì chọn toàn bộ dữ liệu của tài liệu. Nếu tài liệu có 5 trường và bạn chỉ cần hiển thị 3 trường thì chỉ chọn 3 trường trong số đó
Phương thức find[]
Phương thức find[] của MongoDB, được giải thích trong MongoDB Query Document chấp nhận tham số tùy chọn thứ hai là danh sách các trường mà bạn muốn truy xuất. Trong MongoDB, khi bạn thực thi phương thức find[] thì nó sẽ hiển thị tất cả các trường của tài liệu. Để hạn chế điều này, bạn cần thiết lập danh sách các trường có giá trị 1 hoặc 0. 1 được sử dụng để hiển thị trường trong khi 0 được sử dụng để ẩn các trường
cú pháp
Cú pháp cơ bản của phương thức find[] với phép chiếu như sau -
>db.COLLECTION_NAME.find[{},{KEY:1}]
Thí dụ
Hãy xem xét bộ sưu tập mycol có dữ liệu sau -
{_id : ObjectId["507f191e810c19729de860e1"], title: "MongoDB Overview"}, {_id : ObjectId["507f191e810c19729de860e2"], title: "NoSQL Overview"}, {_id : ObjectId["507f191e810c19729de860e3"], title: "Tutorials Point Overview"}
Ví dụ sau sẽ hiển thị tiêu đề của tài liệu trong khi truy vấn tài liệu
>db.mycol.find[{},{"title":1,_id:0}] {"title":"MongoDB Overview"} {"title":"NoSQL Overview"} {"title":"Tutorials Point Overview"} >
Xin lưu ý trường _id luôn được hiển thị trong khi thực thi phương thức find[], nếu bạn không muốn trường này, thì bạn cần đặt nó thành 0
Toán tử truy vấn MongoDB bao gồm các toán tử so sánh, logic, phần tử, đánh giá, Không gian địa lý, mảng, bitwise và nhận xét
Toán tử so sánh MongoDB
$eq
$eq chỉ định điều kiện bình đẳng. Nó khớp với các tài liệu trong đó giá trị của một trường bằng với giá trị đã chỉ định
cú pháp
Thí dụ
Ví dụ trên truy vấn bộ sưu tập sách để chọn tất cả các tài liệu có giá trị của giá nộp bằng 300
$gt
$gt chọn một tài liệu trong đó giá trị của trường lớn hơn giá trị đã chỉ định
cú pháp
Thí dụ
$gte
$gte chọn các tài liệu có giá trị trường lớn hơn hoặc bằng một giá trị được chỉ định
cú pháp
Thí dụ
$in
Toán tử $in chọn các tài liệu trong đó giá trị của một trường bằng với bất kỳ giá trị nào trong mảng đã chỉ định
cú pháp
Thí dụ
$lt
Toán tử $lt chọn các tài liệu có giá trị của trường nhỏ hơn giá trị đã chỉ định
cú pháp
Thí dụ
$lte
Toán tử $lte chọn các tài liệu có giá trị trường nhỏ hơn hoặc bằng một giá trị đã chỉ định
cú pháp
Thí dụ
$ne
Toán tử $ne chọn các tài liệu có giá trị trường không bằng giá trị đã chỉ định
cú pháp
Thí dụ
$nin
Toán tử $nin chọn các tài liệu có giá trị trường không có trong mảng đã chỉ định hoặc không tồn tại
cú pháp
Thí dụ
Toán tử logic MongoDB
$và
Toán tử $and hoạt động như một phép toán logic AND trên một mảng. Mảng phải là một hoặc nhiều biểu thức và chọn các tài liệu đáp ứng tất cả các biểu thức trong mảng
cú pháp
Thí dụ
$không
Toán tử $not hoạt động như một logic NOT trên biểu thức đã chỉ định và chọn các tài liệu không liên quan đến biểu thức
cú pháp
Thí dụ
$ cũng không
Toán tử $nor hoạt động như logic NOR trên một mảng gồm một hoặc nhiều biểu thức truy vấn và chọn các tài liệu không thành công với tất cả biểu thức truy vấn trong mảng
cú pháp
Thí dụ
$ hoặc
Nó hoạt động như một phép toán OR logic trên một mảng gồm hai hoặc nhiều biểu thức và chọn các tài liệu đáp ứng mong đợi của ít nhất một trong các biểu thức
cú pháp
Thí dụ
Toán tử phần tử MongoDB
$ tồn tại
Toán tử tồn tại khớp với các tài liệu chứa trường khi Boolean là true. Nó cũng khớp với tài liệu có giá trị trường là null
cú pháp
Thí dụ
loại $
Toán tử loại chọn tài liệu trong đó giá trị của trường là một thể hiện của loại BSON đã chỉ định
cú pháp
Thí dụ
Toán tử đánh giá MongoDB
$expr
Toán tử expr cho phép sử dụng các biểu thức tổng hợp trong ngôn ngữ truy vấn
cú pháp
Thí dụ
Lược đồ $json
Nó khớp với các tài liệu đáp ứng Lược đồ JSON được chỉ định
cú pháp
$mod
Toán tử mod chọn tài liệu trong đó giá trị của một trường được chia cho một ước số có phần còn lại được chỉ định
cú pháp
Thí dụ
$regex
Nó cung cấp các khả năng biểu thức chính quy cho các chuỗi khớp mẫu trong các truy vấn. MongoDB sử dụng các biểu thức chính quy tương thích với Perl
cú pháp
Thí dụ
$văn bản
Toán tử $text tìm kiếm văn bản trên nội dung của trường, được lập chỉ mục bằng chỉ mục văn bản
cú pháp
Thí dụ
$ở đâu
Toán tử "where" được sử dụng để chuyển một chuỗi chứa biểu thức JavaScript hoặc hàm JavaScript đầy đủ tới hệ thống truy vấn
Thí dụ
Toán tử không gian địa lý MongoDB
$geoIntersects
Nó chỉ chọn những tài liệu có dữ liệu không gian địa lý giao nhau với đối tượng GeoJSON đã cho
cú pháp
Thí dụ
$geoWithin
Toán tử geoWithin chọn tài liệu có dữ liệu không gian địa lý tồn tại hoàn toàn trong một hình dạng được chỉ định
cú pháp
$gần
Toán tử gần xác định một điểm mà truy vấn không gian địa lý trả về các tài liệu từ gần đến xa
cú pháp
Thí dụ
$nearSphere
Toán tử hình cầu gần chỉ định một điểm mà truy vấn không gian địa lý trả về tài liệu từ gần nhất đến xa nhất
cú pháp
Thí dụ
$tất cả
Nó chọn tài liệu trong đó giá trị của một trường là một mảng chứa tất cả các phần tử đã chỉ định
cú pháp
Thí dụ
$elemMatch
Toán tử liên kết các tài liệu chứa trường mảng với ít nhất một phần tử phù hợp với tất cả các tiêu chí truy vấn đã cho
cú pháp
Thí dụ
kích thước $
Nó chọn bất kỳ mảng nào với số phần tử được chỉ định bởi đối số
cú pháp
Toán tử MongoDB Bitwise
$bitsTất cảXóa
Nó khớp với các tài liệu trong đó tất cả các vị trí bit do truy vấn đưa ra đều rõ ràng trong trường
cú pháp
Thí dụ
$bitsAllSet
Toán tử bitallset khớp với các tài liệu trong đó tất cả các vị trí bit do truy vấn cung cấp được đặt trong trường
cú pháp
Thí dụ
$bitsAnyClear
Toán tử bitAnyClear khớp với tài liệu trong đó bất kỳ vị trí bit nào do truy vấn cung cấp đều rõ ràng trong trường
cú pháp
Thí dụ
$bitsAnySet
Nó khớp với tài liệu trong đó bất kỳ vị trí bit nào do truy vấn cung cấp được đặt trong trường
cú pháp
Thí dụ
Toán tử bình luận MongoDB
$bình luận
Toán tử $comment liên kết một nhận xét với bất kỳ biểu thức nào nhận một vị từ truy vấn
cú pháp
Thí dụ
Toán tử chiếu MongoDB
$
Toán tử $ giới hạn nội dung của một mảng từ kết quả truy vấn chỉ chứa phần tử đầu tiên khớp với tài liệu truy vấn
cú pháp
$elemMatch
Nội dung của trường mảng bị giới hạn khi sử dụng toán tử này từ kết quả truy vấn để chỉ chứa phần tử đầu tiên khớp với điều kiện $elemMatch của phần tử
cú pháp
$meta
Toán tử meta trả về kết quả cho từng tài liệu phù hợp trong đó siêu dữ liệu được liên kết với truy vấn