MongoDB nhận giá trị của một trường

Phương thức find() của MongoDB chọn các tài liệu từ một bộ sưu tập hoặc chế độ xem và trả về một con trỏ tới các tài liệu đó. Có hai tham số trong công thức này - truy vấn và phép chiếu. Truy vấn là một tham số tùy chọn chỉ định tiêu chí để lựa chọn. Nói một cách đơn giản, truy vấn là thứ bạn muốn tìm kiếm trong một bộ sưu tập. Phép chiếu là một tham số tùy chọn chỉ định nội dung sẽ được trả về nếu tiêu chí truy vấn được đáp ứng. Nói một cách đơn giản, đó là một kiểu ra quyết định dựa trên một bộ tiêu chí. Để biết thêm thông tin, hãy xem cách học phát triển Web Full Stack.  

Lược đồ linh hoạt MongoDB

Cơ sở dữ liệu NoSQL, viết tắt của "không chỉ SQL", là một cách lưu trữ và truy xuất dữ liệu khác với cấu trúc bảng truyền thống của cơ sở dữ liệu quan hệ (RDBMS). Khi lưu trữ một lượng lớn dữ liệu phi cấu trúc với các lược đồ thay đổi, cơ sở dữ liệu NoQuery thực sự là một lựa chọn tốt hơn RDBMS. Thuộc tính mở rộng theo chiều ngang của cơ sở dữ liệu NoSQL cho phép chúng lưu trữ và xử lý lượng lớn dữ liệu

Chúng được dùng để lưu trữ, truy xuất và quản lý dữ liệu định hướng tài liệu, thường được lưu trữ ở định dạng JSON (Ký hiệu đối tượng JavaScript). Cơ sở dữ liệu tài liệu, không giống như RDBMS, có một lược đồ linh hoạt được xác định bởi nội dung của tài liệu. MongoDB là một trong những cơ sở dữ liệu tài liệu NoSQL mã nguồn mở được sử dụng rộng rãi nhất. MongoDB được gọi là cơ sở dữ liệu 'không lược đồ' vì nó không áp đặt cấu trúc cụ thể cho các tài liệu trong bộ sưu tập

MongoDB tương thích với một số ngôn ngữ lập trình phổ biến. Nó cũng cung cấp mức độ linh hoạt hoạt động cao vì nó mở rộng tốt theo chiều ngang, cho phép dữ liệu được trải rộng hoặc 'phân mảnh' trên nhiều máy chủ hàng hóa với khả năng thêm nhiều máy chủ hơn khi cần. MongoDB có thể chạy trên nhiều nền tảng, bao gồm máy tính xách tay của nhà phát triển, đám mây riêng và đám mây công cộng

MongoDB Truy vấn tài liệu bằng cách sử dụng find()

Các truy vấn MongoDB được sử dụng để truy xuất hoặc tìm nạp dữ liệu từ cơ sở dữ liệu MongoDB. Khi chạy truy vấn, bạn có thể sử dụng tiêu chí hoặc điều kiện để truy xuất dữ liệu cụ thể từ cơ sở dữ liệu. chức năng db. bộ sưu tập được cung cấp bởi MongoDB. find() là hàm truy xuất tài liệu từ cơ sở dữ liệu MongoDB. Trong MongoDB, findmethods được sử dụng để truy xuất một tài liệu cụ thể từ bộ sưu tập MongoDB. Trong Mongo DB, có tổng cộng sáu phương thức để truy xuất các bản ghi cụ thể

  • tìm thấy()
  • findAndModify()
  • tìm một()
  • findOneAndDelete()
  • findOneAndReplace()
  • findOneAndUpdate()

cú pháp

find(query, projection)

Chúng tôi có thể tìm nạp một bản ghi cụ thể bằng phương thức Tìm có hai tham số. Nếu hai tham số này bị bỏ qua, phương thức find sẽ trả về tất cả các tài liệu trong bộ sưu tập MongoDB

Thí dụ

Xem xét một ví dụ về nhân viên với cơ sở dữ liệu của employee_id và employee_name và chúng tôi sẽ tìm nạp tài liệu bằng phương thức find()

Đầu tiên, tạo một cơ sở dữ liệu với tên “nhân viên” với đoạn mã sau

sử dụng nhân viên

Bây giờ, hãy tạo một bộ sưu tập “nhân viên” với

db.createCollection("employee")

Trong bước tiếp theo, chúng tôi sẽ chèn các tài liệu vào cơ sở dữ liệu

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])

Tìm tất cả Tài liệu

Để lấy tất cả các bản ghi trong một bộ sưu tập, chúng ta cần sử dụng phương thức find với tham số trống. Nói cách khác, khi chúng tôi cần tất cả các bản ghi, chúng tôi sẽ không sử dụng bất kỳ tham số nào

db.employee.find()

Đầu ra trong Mongo Shell

MongoDB Query Document using find() with Example

Phương thức pretty() có thể được sử dụng để hiển thị kết quả theo cách được định dạng

cú pháp

db.COLLECTION_NAME.find().pretty()

Hãy kiểm tra tài liệu của chúng ta với phương thức pretty()

MongoDB Query Document using find() with Example

Bộ lọc truy vấn

Chúng ta sẽ xem các ví dụ về thao tác truy vấn sử dụng thedb. thu thập. phương thức find() inmongosh

Chúng tôi sẽ sử dụng bộ sưu tập nhân viên trong cơ sở dữ liệu nhân viên

db.employee.insert([{employee_id: 101, employee_name: "Ishan", age: 21, email_id: "[email protected]"}, {employee_id: 102, employee_name: "Bhavesh", age: 22, email_id: "[email protected]"}, {employee_id: 103, employee_name: "Madan", age: 23, email_id: "[email protected]"}])

Như chúng ta đã thấy trước đó, để chọn tất cả các tài liệu trong cơ sở dữ liệu, chúng ta chuyển một tài liệu trống làm tham số bộ lọc truy vấn cho phương thức tìm

Bạn lo lắng về cách bắt đầu sự nghiệp của mình trong lĩnh vực phát triển web? .    

db.employee.find().pretty()
MongoDB Query Document using find() with Example

1. Tìm tài liệu đầu tiên trong một bộ sưu tập.

db.employee.findOne()
MongoDB Query Document using find() with Example

2. Tìm tài liệu theo ID.

db.employee.findOne({_id : ObjectId("61d1ae0b56b92c20b423a5a7")})
MongoDB Query Document using find() with Example

3. Tìm tài liệu phù hợp với tiêu chí truy vấn

db.employee.find({“age”: “22”})
MongoDB Query Document using find() with Example
db.createCollection("employee")
0MongoDB Query Document using find() with Example

4. Sắp xếp kết quả theo trường.

db. Nhân viên. tìm thấy(). sắp xếp ({tuổi. 1}). đẹp()

theo độ tuổi, tăng dần

MongoDB Query Document using find() with Example

db. Nhân viên. tìm thấy(). sắp xếp ({tuổi. -1}). đẹp()

thứ tự theo tuổi, giảm dần

MongoDB Query Document using find() with Example

VÀ Điều kiện

Truy vấn ghép có thể chỉ định điều kiện cho nhiều trường trong tài liệu trong bộ sưu tập. Liên kết logic AND kết nối gián tiếp các mệnh đề của truy vấn ghép, cho phép truy vấn chọn tất cả các tài liệu trong bộ sưu tập đáp ứng các điều kiện đã chỉ định

Trong ví dụ sau, chúng tôi sẽ xem xét tất cả các tài liệu trong bộ sưu tập nhân viên trong đó employee_id bằng 101 và tuổi bằng 21

db.createCollection("employee")
1MongoDB Query Document using find() with Example

Truy vấn các trường lồng nhau

Tính năng nhúng hoặc lồng tài liệu trong MongoDB là một tính năng hữu ích. Tài liệu nhúng, còn được gọi là tài liệu lồng nhau, là tài liệu chứa các tài liệu khác

Bạn chỉ cần nhúng một tài liệu vào bên trong một tài liệu khác trong MongoDB. Các tài liệu được xác định trong trình bao mongo bằng cách sử dụng dấu ngoặc nhọn () và các cặp giá trị trường được chứa trong các dấu ngoặc nhọn này

Sử dụng dấu ngoặc nhọn, giờ đây chúng ta có thể nhúng hoặc đặt một tài liệu khác bên trong các trường này, có thể bao gồm các cặp giá trị trường hoặc tài liệu phụ khác

cú pháp

db.createCollection("employee")
2

Thí dụ

Chúng tôi có một cơ sở dữ liệu “nested” và trong cơ sở dữ liệu này, chúng tôi có bộ sưu tập “nesteddoc”

Các tài liệu sau sẽ chèn vào thenesteddoccollection

db.createCollection("employee")
3

Đặt các tài liệu trong bộ sưu tập bây giờ. Ngoài ra, hãy xem kết quả

MongoDB Query Document using find() with Example

Kết quả là, bộ sưu tập Nesteddoc chứa bốn tài liệu, mỗi tài liệu chứa các tài liệu lồng nhau. Phương thức find() có thể được sử dụng để truy cập tài liệu của bộ sưu tập

db.createCollection("employee")
4MongoDB Query Document using find() with Example

Chỉ định điều kiện đẳng thức.

Trong ví dụ này, chúng tôi sẽ chọn tài liệu từ truy vấn Nesteddoc trong đó dept bằng “A”

db.createCollection("employee")
5MongoDB Query Document using find() with Example

Truy vấn mảng

Sử dụng tài liệu truy vấn {. } để chỉ định một điều kiện đẳng thức trên một mảng, trong đó mảng chính xác phù hợp, bao gồm cả thứ tự của các phần tử

Truy vấn sau tìm kiếm tất cả các tài liệu có giá trị thẻ trường là một mảng có chính xác hai phần tử, "S" và "M" theo thứ tự được chỉ định

db.createCollection("employee")
6MongoDB Query Document using find() with Example

Sử dụng toán tử $all để tìm một mảng chứa cả hai phần tử "S" và "M", bất kể thứ tự hoặc các phần tử khác trong mảng.

db.createCollection("employee")
7MongoDB Query Document using find() with Example

Truy vấn một mảng cho một phần tử.

Ví dụ sau truy vấn cho tất cả các tài liệu trong đó kích thước là một mảng chứa chuỗi “S” là một trong các phần tử của nó

db.createCollection("employee")
8MongoDB Query Document using find() with Example

Điều kiện lọc

Để thảo luận về các điều kiện lọc, chúng tôi sẽ xem xét một tình huống xây dựng điều này. Chúng tôi sẽ bắt đầu bằng cách tạo một bộ sưu tập với tên “products” và sau đó thêm các tài liệu vào đó

db.createCollection("employee")
9

Để kiểm tra tài liệu, hãy sử dụng db. Mỹ phẩm. tìm thấy()

MongoDB Query Document using find() with Example

1. $gt

$gt chọn tài liệu có giá trị trường lớn hơn (hoặc bằng) giá trị đã chỉ định

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
0MongoDB Query Document using find() with Example

2. $gte.

$gte tìm các tài liệu trong đó giá trị của một trường lớn hơn hoặc bằng (i. e. >=) một giá trị xác định (e. g. giá trị. )

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
1MongoDB Query Document using find() with Example

3. $lt.

$lt chọn tài liệu có giá trị trường nhỏ hơn (hoặc bằng) giá trị đã chỉ định

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
2MongoDB Query Document using find() with Example

4. $lte.

$lte chọn tài liệu trong đó giá trị của trường nhỏ hơn hoặc bằng (i. e. =) giá trị được chỉ định

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
3MongoDB Query Document using find() with Example

Truy vấn mảng theo độ dài mảng.

Để tìm các mảng có số lượng phần tử cụ thể, hãy sử dụng toán tử $size. Ví dụ: sau đây chọn tài liệu có hai phần tử trong mảng

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
4MongoDB Query Document using find() with Example

Phép chiếu

Trong MongoDB, phép chiếu đề cập đến việc chỉ chọn dữ liệu được yêu cầu thay vì toàn bộ dữ liệu của tài liệu. Nếu một tài liệu có năm trường và bạn chỉ muốn hiển thị ba trường trong số đó, hãy chỉ chọn ba trường trong số đó

Phương thức find() trong MongoDB chấp nhận tham số tùy chọn thứ hai, là danh sách các trường cần truy xuất, như được giải thích trong Tài liệu truy vấn MongoDB. Khi bạn sử dụng phương thức find() trong MongoDB, nó sẽ hiển thị tất cả các trường của tài liệu. Để ngăn chặn điều này, hãy tạo một danh sách các trường có giá trị 1 hoặc 0. Giá trị 1 cho biết trường sẽ hiển thị, trong khi 0 cho biết trường sẽ bị ẩn

cú pháp

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
5

Thí dụ

Chúng ta sẽ xem xét ví dụ trước về bộ sưu tập sản phẩm. Chạy lệnh dưới đây trên mongoshell để tìm hiểu cách hoạt động của phép chiếu

db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])
6MongoDB Query Document using find() with Example

Hãy nhớ rằng trường _id luôn được hiển thị trong khi thực hiện phương thức find(); .

Làm cách nào để lấy giá trị của một trường trong MongoDB?

Bạn có thể sử dụng $getField để truy xuất giá trị của các trường có tên chứa dấu chấm (. ) hoặc bắt đầu bằng ký hiệu đô la ($ ).

Làm cách nào để tìm nạp dữ liệu cụ thể trong MongoDB?

Để tìm nạp các giá trị trường cụ thể, hãy sử dụng toán tử inoperator . Thein chọn các tài liệu trong đó giá trị của một trường bằng bất kỳ giá trị nào trong mảng đã chỉ định.

Làm cách nào để lấy giá trị từ bộ sưu tập trong MongoDB?

Tìm nạp tất cả dữ liệu từ bộ sưu tập . > db. chi tiết người dùng. tìm thấy(); .

Làm cách nào để truy xuất một giá trị từ MongoDB theo tên khóa của nó?

Có hai cách để thực hiện truy vấn OR trong MongoDB. "$in" có thể được sử dụng để truy vấn nhiều giá trị cho một khóa duy nhất . "$or" là tổng quát hơn; . Điều này khớp với các tài liệu có "user_id" bằng 12345 và các tài liệu có "user_id" bằng "joe".