Hướng dẫn how do i find an array of objects in mongodb? - làm cách nào để tìm một mảng đối tượng trong mongodb?

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 instock 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 inventory:

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 (.) 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 instock có ít nhất một tài liệu nhúng có chứa trường qty có giá trị nhỏ hơn hoặc bằng 20:

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 instock có phần tử đầu tiên là tài liệu chứa trường qty có giá trị nhỏ hơn hoặc bằng 20:

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ử

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
2 để 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 instock có ít nhất một tài liệu nhúng có chứa cả trường qty bằng

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
5 và trường
{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
6 bằng
{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
7:

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng instock có ít nhất một tài liệu nhúng có chứa trường qty lớn hơn

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {}]
0 và nhỏ hơn hoặc bằng 20:

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ử

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
2, 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 instock có trường qty lớn hơn

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {}]
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 qty nhỏ hơn hoặc bằng 20:

Các truy vấn ví dụ sau đây cho các tài liệu trong đó mảng instock có ít nhất một tài liệu nhúng có chứa trường qty bằng

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
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
{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
6 bằng
{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}
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

Tôi là người mới đến MongoDB, tôi có cùng một vấn đề mà Stennie mô tả. Tôi đã cố gắng truy vấn tài liệu này trong la bàn:

    {
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}

Khi nào chạy truy vấn này: ________ 33 Đối với tài liệu duy nhất này, tôi nhận được kết quả tương tự:

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {
        "award": "Turing Award",
        "year": 1977,
        "by": "ACM"
    }]
}

Có thể có được phần tử duy nhất được tìm kiếm theo cách này:

{
    "_id": 1,
    "name": {
        "first": "John",
        "last": "Backus"
    },
    "birth": {
        "$date": "1924-12-02T23:00:00.000Z"
    },
    "death": {
        "$date": "2007-03-16T23:00:00.000Z"
    },
    "contribs": ["Fortran", "ALGOL", "Backus-Naur Form", "FP"],
    "awards": [{
        "award": "National Medal",
        "year": 1975,
        "by": "NSF"
    }, {}]

Cảm ơn bạn

Làm cách nào để tìm kiếm 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: { : { : , ... } }

Bạn có thể có một loạt các đối tượng trong MongoDB không?

Trong mô hình tài liệu của MongoDB, dữ liệu mối quan hệ 1: N có thể được lưu trữ trong một bộ sưu tập;Đây là một hình thức dữ liệu không chuẩn hóa.Các dữ liệu liên quan được lưu trữ cùng nhau và có thể được truy cập (và cập nhật) cùng nhau.Các ý kiến được lưu trữ dưới dạng một mảng;Một mảng các đối tượng bình luận.a 1:N relationship data can be stored within a collection; this is a de-normalized form of data. The related data is stored together and can be accessed (and updated) together. The comments are stored as an array; an array of comment objects.

Làm thế nào để bạn phù hợp với một mảng các đối tượng trong tập hợp MongoDB?

Làm thế nào để bạn phù hợp với một mảng các đối tượng trong tập hợp MongoDB ?..
MongoDB tổng hợp kết hợp trong một mảng ..
Sử dụng $ khớp với $ trong để 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 $ EQ để tìm các tài liệu phù hợp trong một mảng trong MongoDB ..
Sử dụng $ Match với $ All để tìm các tài liệu phù hợp trong một mảng trong MongoDB ..

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.