Hướng dẫn how do i retrieve an array in mongodb? - làm cách nào để lấy một mảng trong mongodb?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Trên trang này

  • Khớp với một mảng
  • Truy vấn một mảng cho một phần tử
  • Chỉ định nhiều điều kiện cho các phần tử mảng
  • Hướng dẫn truy vấn bổ sung


Sử dụng menu chọn ngôn ngữ của bạn ở phía trên bên phải để đặt ngôn ngữ của các ví dụ sau.Select your language drop-down menu in the upper-right to set the language of the following examples.


Các truy vấn ví dụ sau đây cho tất cả các tài liệu trong đó giá trị trường tags là một mảng có chính xác hai phần tử, "red""blank", theo thứ tự được chỉ định:

Thay vào đó, nếu bạn muốn tìm một mảng chứa cả hai phần tử "red""blank", mà không liên quan đến thứ tự hoặc các phần tử khác trong mảng, hãy sử dụng toán tử $all:

Các truy vấn ví dụ sau đây cho tất cả các tài liệu trong đó tags là một mảng chứa chuỗi "red" là một trong các yếu tố của nó:

Ví dụ: các truy vấn hoạt động sau đây cho tất cả các tài liệu trong đó mảng dim_cm chứa ít nhất một phần tử có giá trị lớn hơn 25.

Khi chỉ định các điều kiện hợp chất trên các phần tử mảng, bạn có thể chỉ định truy vấn sao cho một phần tử mảng duy nhất đáp ứng các điều kiện này hoặc bất kỳ sự kết hợp nào của các phần tử mảng đáp ứng các điều kiện.

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng dim_cm chứa các yếu tố trong một số kết hợp thỏa mãn các điều kiện truy vấn; ví dụ: một yếu tố có thể thỏa mãn điều kiện lớn hơn "red"1 và một phần tử khác có thể thỏa mãn điều kiện nhỏ hơn "red"2 hoặc một phần tử duy nhất có thể thỏa mãn cả hai:

Sử dụng toán tử "red"3 để chỉ định nhiều tiêu chí về các phần tử của một mảng sao cho ít nhất một phần tử mảng đáp ứng tất cả các tiêu chí được chỉ định.

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng dim_cm chứa ít nhất một phần tử vừa hơn ("red"5) "red"6 và nhỏ hơn ("red"7) "red"8:

Sử dụng ký hiệu DOT, bạn có thể chỉ định các điều kiện truy vấn cho một phần tử tại một chỉ mục hoặc vị trí cụ thể của mảng. Mảng sử dụng lập chỉ mục dựa trên không.

Ghi chú

Khi truy vấn sử dụng ký hiệu DOT, trường và trường lồng nhau phải ở bên trong dấu ngoặc kép.

Các truy vấn ví dụ sau đây cho tất cả các tài liệu trong đó phần tử thứ hai trong mảng dim_cm lớn hơn 25:

Sử dụng toán tử "blank"1 để truy vấn cho các mảng theo số phần tử. Ví dụ: các tài liệu chọn sau đây trong đó mảng tags có 3 yếu tố.

Để biết các ví dụ truy vấn bổ sung, xem:

  • Tài liệu truy vấn

  • Truy vấn trên các tài liệu nhúng/lồng nhau

  • Truy vấn một loạt các tài liệu nhúng

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Trên trang này

  • Truy vấn cho một tài liệu được lồng trong một mảng
  • Chỉ định một điều kiện truy vấn trên trường trong một mảng tài liệu
  • Chỉ định nhiều điều kiện cho mảng tài liệu
  • Hướng dẫn truy vấn bổ sung


Sử dụng menu chọn ngôn ngữ của bạn ở phía trên bên phải để đặt ngôn ngữ của các ví dụ sau.Select your language drop-down menu in the upper-right to set the language of the following examples.


Ví dụ sau chọn tất cả các tài liệu trong đó một phần tử trong mảng "blank"3 khớp với tài liệu được chỉ định:

Bình đẳng khớp với toàn bộ tài liệu nhúng/lồng nhau đòi hỏi một kết hợp chính xác của tài liệu được chỉ định, bao gồm cả thứ tự trường. Ví dụ: truy vấn sau không khớp với bất kỳ tài liệu nào trong bộ sưu tập "blank"4:

Nếu bạn không biết vị trí chỉ mục của tài liệu được lồng trong mảng, hãy nối tên của trường mảng, với một dấu chấm ("blank"5) và tên của trường trong tài liệu lồng nhau.

Ví dụ sau chọn tất cả các tài liệu trong đó mảng "blank"3 có ít nhất một tài liệu nhúng có chứa trường "blank"7 có giá trị nhỏ hơn hoặc bằng "red"2:

Sử dụng ký hiệu DOT, bạn có thể chỉ định các điều kiện truy vấn cho trường trong tài liệu tại một chỉ mục hoặc vị trí cụ thể của mảng. Mảng sử dụng lập chỉ mục dựa trên không.

Ghi chú

Khi truy vấn sử dụng ký hiệu DOT, trường và chỉ mục phải ở bên trong dấu ngoặc kép.

Ví dụ sau chọn tất cả các tài liệu trong đó mảng "blank"3 có phần tử đầu tiên của nó là một tài liệu chứa trường "blank"7 có giá trị nhỏ hơn hoặc bằng "red"2:

Khi chỉ định các điều kiện trên nhiều trường được lồng trong một mảng tài liệu, bạn có thể chỉ định truy vấn sao cho một tài liệu duy nhất đáp ứng các điều kiện này hoặc bất kỳ kết hợp tài liệu nào (bao gồm một tài liệu) trong mảng đáp ứng các điều kiện.

Sử dụng toán tử "red"3 để chỉ định nhiều tiêu chí trên một mảng các tài liệu nhúng sao cho ít nhất một tài liệu nhúng thỏa mãn tất cả các tiêu chí được chỉ định.

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng "blank"3 có ít nhất một tài liệu nhúng có chứa cả trường "blank"7 bằng "red"5 và trường "red"6 bằng "red"7:

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng "blank"3 có ít nhất một tài liệu nhúng có chứa trường "blank"7 lớn hơn "blank"0 và nhỏ hơn hoặc bằng "red"2:

Nếu các điều kiện truy vấn hợp chất trên trường mảng không sử dụng toán tử "red"3, truy vấn sẽ chọn các tài liệu có mảng chứa bất kỳ sự kết hợp nào của các phần tử thỏa mãn các điều kiện.

Ví dụ: truy vấn sau phù hợp với các tài liệu trong đó bất kỳ tài liệu nào được lồng trong mảng "blank"3 có trường "blank"7 lớn hơn "blank"0 và bất kỳ tài liệu nào (nhưng không nhất thiết là cùng một tài liệu nhúng) trong mảng có trường "blank"7 nhỏ hơn hoặc bằng "red"2:

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng "blank"3 có ít nhất một tài liệu nhúng có chứa trường "blank"7 bằng "red"5 và ít nhất một tài liệu được nhúng (nhưng không nhất thiết là cùng một tài liệu nhúng) có chứa trường "red"6 bằng "red"7:

Để biết các ví dụ truy vấn bổ sung, xem:

  • Truy vấn một mảng

  • Tài liệu truy vấn

  • Truy vấn trên các tài liệu nhúng/lồng nhau

Làm cách nào để truy vấn một mảng trong MongoDB?

Để truy vấn nếu trường mảng chứa ít nhất một phần tử có giá trị được chỉ định, hãy sử dụng bộ lọc {:} trong đó giá trị phần tử. Để chỉ định các điều kiện trên các phần tử trong trường Array, hãy sử dụng các toán tử truy vấn trong tài liệu bộ lọc truy vấn: {: {:, ...}}}use the filter { : } where is the element value. To specify conditions on the elements in the array field, use query operators in the query filter document: { : { : , ... } }

Làm thế nào để tôi kéo tất cả các yếu tố trong một mảng trong MongoDB?

Toán tử $ Pullall sẽ loại bỏ tất cả các phiên bản của các giá trị được chỉ định khỏi một mảng hiện có.Không giống như toán tử $ kéo loại bỏ các phần tử bằng cách chỉ định truy vấn, $ Pullall sẽ loại bỏ các phần tử phù hợp với các giá trị được liệt kê.$pullAll operator removes all instances of the specified values from an existing array. Unlike the $pull operator that removes elements by specifying a query, $pullAll removes elements that match the listed values.

Làm cách nào để lọc một mảng trong MongoDB?

Bộ lọc phần tử mảng MongoDB bằng toán tử $ Filter Toán tử này sử dụng ba biến: Đầu vào - Điều này thể hiện mảng mà chúng tôi muốn trích xuất.Cond - Điều này đại diện cho tập hợp các điều kiện phải được đáp ứng.AS - Trường tùy chọn này chứa một tên cho biến đại diện cho từng phần tử của mảng đầu vào.Using $Filter Operator This operator uses three variables: input – This represents the array that we want to extract. cond – This represents the set of conditions that must be met. as – This optional field contains a name for the variable that represent each element of the input array.

MongoDB có thể lưu trữ mảng không?

Một trong những lợi ích của mô hình lược đồ phong phú của MongoDB là khả năng lưu trữ các mảng dưới dạng các giá trị trường tài liệu.Lưu trữ các mảng dưới dạng các giá trị trường cho phép bạn mô hình hóa các mối quan hệ một-nhiều hoặc nhiều đến nhiều trong một tài liệu, thay vì trên các bộ sưu tập riêng biệt như bạn có thể trong cơ sở dữ liệu quan hệ.. Storing arrays as field values allows you to model one-to-many or many-to-many relationships in a single document, instead of across separate collections as you might in a relational database.