Hướng dẫn how do i find a particular element in an array in mongodb? - làm cách nào để tìm một phần tử cụ thể trong một mảng trong mongodb?

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

Mẹo

Xem thêm:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 Trình điều khiển
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 khớp với các tài liệu có chứa một trường mảng có ít nhất một phần tử phù hợp với tất cả các tiêu chí truy vấn được chỉ định.
Hướng dẫn how do i find a particular element in an array in mongodb? - làm cách nào để tìm một phần tử cụ thể trong một mảng trong mongodb?

The

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 operator matches documents that contain an array field with at least one element that matches all the specified query criteria.

{ : { $elemMatch: { , , ... } } }

Nếu bạn chỉ định một điều kiện

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
5 duy nhất trong biểu thức
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 và không sử dụng các toán tử
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 hoặc
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 bên trong
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3,
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 có thể được bỏ qua. Xem điều kiện truy vấn duy nhất.
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
expression, and are not using the
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 or
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 operators inside of
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
,
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
can be omitted. See Single Query Condition.

  • Bạn không thể chỉ định biểu thức

    db.scores.find(
    { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
    )
    1 trong một
    { _id: 1, results: [ 82, 85, 88 ] }
    { _id: 2, results: [ 75, 88, 89 ] }
    3
    { _id: 1, results: [ 82, 85, 88 ] }
    { _id: 2, results: [ 75, 88, 89 ] }
    3

  • Bạn không thể chỉ định biểu thức truy vấn

    db.scores.find(
    { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
    )
    3 trong một
    { _id: 1, results: [ 82, 85, 88 ] }
    { _id: 2, results: [ 75, 88, 89 ] }
    3
    { _id: 1, results: [ 82, 85, 88 ] }
    { _id: 2, results: [ 75, 88, 89 ] }
    3

Đưa ra các tài liệu sau trong bộ sưu tập

db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
5:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

Truy vấn sau chỉ khớp với các tài liệu trong đó mảng

db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
6 chứa ít nhất một phần tử vừa hơn hoặc bằng
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
7 và nhỏ hơn
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
8:

db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)

Truy vấn trả về tài liệu sau vì phần tử

db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
9 vừa lớn hơn hoặc bằng
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
7 và nhỏ hơn
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
8:

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

Để biết thêm thông tin về việc chỉ định nhiều tiêu chí trên các phần tử mảng, hãy xem chỉ định nhiều điều kiện cho các phần tử mảng.

Tuyên bố này chèn các tài liệu vào bộ sưu tập

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

2:

db.survey.insertMany( [
{ "_id": 1, "results": [ { "product": "abc", "score": 10 },
{ "product": "xyz", "score": 5 } ] },
{ "_id": 2, "results": [ { "product": "abc", "score": 8 },
{ "product": "xyz", "score": 7 } ] },
{ "_id": 3, "results": [ { "product": "abc", "score": 7 },
{ "product": "xyz", "score": 8 } ] },
{ "_id": 4, "results": [ { "product": "abc", "score": 7 },
{ "product": "def", "score": 8 } ] }
] )

Truy vấn sau chỉ khớp với những tài liệu trong đó mảng

db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
6 chứa ít nhất một phần tử có cả

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

4 bằng

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

5 và

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

6 lớn hơn hoặc bằng

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

7:

db.survey.find(
{ results: { $elemMatch: { product: "xyz", score: { $gte: 8 } } } }
)

Cụ thể, truy vấn khớp với tài liệu sau:

{ "_id" : 3, "results" : [ { "product" : "abc", "score" : 7 },
{ "product" : "xyz", "score" : 8 } ] }

Nếu bạn chỉ định một vị ngữ truy vấn duy nhất trong biểu thức

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 và không sử dụng các toán tử
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 hoặc
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 bên trong
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3,
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 có thể bị bỏ qua.
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
expression, and are not using the
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 or
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 operators inside of
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
,
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
can be omitted.

Các ví dụ sau đây trả về các tài liệu tương tự.

Với

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3

db.survey.find(
{ results: { $elemMatch: { product: "xyz" } } }
)

Không có

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3

db.survey.find(
{ "results.product": "xyz" }
)

Tuy nhiên, nếu biểu thức

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 của bạn chứa các toán tử
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 hoặc
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 sau đó bỏ qua biểu thức
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 thay đổi các tài liệu được trả về.
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
expression contains the
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 or
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 operators then omitting the
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
expression changes the documents returned.

Các ví dụ sau đây trả về các tài liệu khác nhau.

Với

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3

db.survey.find(
{ "results": { $elemMatch: { product: { $ne: "xyz" } } } }
)

Không có

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
0

Tuy nhiên, nếu biểu thức

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 của bạn chứa các toán tử
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
7 hoặc
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
8 sau đó bỏ qua biểu thức
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3 thay đổi các tài liệu được trả về.
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3
, the first query returns these documents:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
1

Các ví dụ sau đây trả về các tài liệu khác nhau.

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3, the second query returns this document:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
2

Với

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3, truy vấn đầu tiên trả về các tài liệu này:

Không có

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
3, truy vấn thứ hai trả về tài liệu này:

  • Truy vấn đầu tiên trả về các tài liệu trong đó bất kỳ sản phẩm nào trong mảng

    db.scores.find(
    { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
    )
    6 không phải là

    { "_id" : 1, "results" : [ 82, 85, 88 ] }

    5. Truy vấn thứ hai trả về các tài liệu trong đó tất cả các sản phẩm trong mảng
    db.scores.find(
    { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
    )
    6 không phải là

    { "_id" : 1, "results" : [ 82, 85, 88 ] }

    5.

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

Truy vấn một mảng

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

Mẹo

Xem thêm:

Làm thế nào để tôi có được một yếu tố từ một mảng trong MongoDB?

Để tìm kiếm mảng đối tượng trong MongoDB, bạn có thể sử dụng toán tử elemmatch $. Toán tử này cho phép chúng tôi tìm kiếm nhiều hơn một thành phần từ một đối tượng mảng.use $elemMatch operator. This operator allows us to search for more than one component from an array object.

Làm thế nào để tôi tìm thấy một giá trị cụ thể trong MongoDB?

Tìm () phương thức. Trong MongoDB, phương thức Find () được sử dụng để chọn các tài liệu trong bộ sưu tập và trả con trỏ cho các tài liệu đã chọn. Con trỏ có nghĩa là một con trỏ trỏ đến một tài liệu, khi chúng ta sử dụng phương thức Find (), nó trả về một con trỏ trên các tài liệu đã chọn và trả về từng cái một.. In MongoDB, find() method is used to select documents in a collection and return a cursor to the selected documents. Cursor means a pointer that points to a document, when we use find() method it returns a pointer on the selected documents and returns one by one.

Làm cách nào để lọc trong MongoDB?

Trong trường Bộ lọc, nhập một tài liệu bộ lọc.Bạn có thể sử dụng tất cả các toán tử truy vấn MongoDB ngoại trừ các toán tử $ text và $ expr.Thí dụ.Bộ lọc sau chỉ trả về các tài liệu có giá trị quốc gia của Brazil: {quốc gia: "Brazil"}.
Nhấp vào Tìm để chạy truy vấn và xem kết quả cập nhật.Bấm để phóng to ..

Làm thế nào để bạn tìm thấy các tài liệu với một mục phù hợp trong một mảng nhúng?

Sử dụng $ khớp với $ EQ để tìm các tài liệu phù hợp trong một mảng trong MongoDB.Sử dụng $ khớp với $ All để tìm các tài liệu phù hợp trong một mảng trong MongoDB. to Find Matching Documents in an Array in MongoDB. Use $match With $all to Find Matching Documents in an Array in MongoDB.