Hướng dẫn how do i remove a specific element from an array in mongodb? - làm cách nào để xóa một phần tử cụ thể khỏi một mảng trong mongodb?
Đưa ra tài liệu sau trong Bộ sưu tập Hồ sơ: Show
{_id: 1, phiếu bầu: [3, 5, 6, 7, 7, 8]} Hoạt động sau đây sẽ xóa tất cả các mục khỏi mảng phiếu bầu lớn hơn hoặc bằng ($ gTE) 6: db.profiles.update ({_id: 1}, {$ pull: {phiếu bầu: {$ gte: 6}}})) Sau khi hoạt động cập nhật, tài liệu chỉ có các giá trị nhỏ hơn 6: {_id: 1, phiếu bầu: [3, 5]} Nếu bạn có nhiều mục cùng một giá trị, bạn nên sử dụng $ Pullall thay vì $ Pull. Trong câu hỏi có nhiều số liên lạc, cùng sử dụng điều này: thu gom.update ({_id: id}, {$ pullall: {'contact.phone': {number: '+1786543589455'}}}); Nó sẽ xóa mọi mục phù hợp với số đó. trong điện thoại liên lạc Hãy thử đọc hướng dẫn. Toán tử 9 coi từng phần tử là một đối tượng cấp cao nhất. Truy vấn được áp dụng cho từng yếu tố. Biểu thức không cần sử dụng 00 để chỉ định các điều kiện khớp.Ngược lại, thao tác sau không 9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu:
Thả bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 với:Sau đó tạo lại nó để chạy ví dụ này. Tạo một bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 mới với các tài liệu được nhúng trong các mảng lồng nhau. { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL", "XXL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] } Sau đó, bạn có thể chỉ định nhiều điều kiện trên các phần tử của mảng 04 với 00
Hoạt động đã cập nhật mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 trong mỗi tài liệu mà nó phù hợp. 07 đã xóa các tài liệu khỏi { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 khi một phần tử của mảng 04 nhúng phù hợp với các điều kiện lựa chọn trong dòng được tô sáng.
Result: { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] } MẹoMongoDB cung cấp một vài toán tử cho phép bạn xóa các giá trị khỏi các mảng. Bao gồm các: { "_id" : 1, "bar" : [ 1, 7, 2, 3, 8, 7, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] } Toán tử 9Toán tử 9 loại bỏ khỏi một mảng hiện có tất cả các phiên bản của giá trị hoặc giá trị khớp với một điều kiện được chỉ định.
Giả sử chúng ta có một bộ sưu tập gọi là { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }4 với các tài liệu sau: Chúng ta có thể xóa một phần tử khỏi mảng trong tài liệu 1 như thế này:
Result: { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] } Bây giờ khi chúng tôi kiểm tra bộ sưu tập, chúng tôi có thể thấy rằng { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }5 đã bị xóa khỏi tài liệu 1 theo quy định: Nhà điều hành { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }0 Toán tử & nbsp; ____ 30 & nbsp; loại bỏ tất cả các trường hợp của các giá trị được chỉ định khỏi mảng.Giả sử chúng ta có một bộ sưu tập với các tài liệu sau: Cung cấp giá trị { "_id" : 1, "bar" : [ 1, 7, 2, 3, 8, 7, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }6 để loại bỏ phần tử đầu tiên và { "_id" : 1, "bar" : [ 1, 7, 2, 3, 8, 7, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }7 để loại bỏ phần cuối cùng. Giả sử chúng ta có một bộ sưu tập gọi là { "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "XS", "S", "M", "L", "XL" ] }4 với các tài liệu sau: { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] } Mã sau sẽ loại bỏ phần tử cuối cùng khỏi mảng trong tài liệu 1:
Chúng tôi có thể xác minh điều này bằng cách kiểm tra bộ sưu tập:
Result: 1 Toán tử 9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu:The
Thả bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 với: 9 operator has the form: 2Sau đó tạo lại nó để chạy ví dụ này. Tạo một bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 mới với các tài liệu được nhúng trong các mảng lồng nhau. Sau đó, bạn có thể chỉ định nhiều điều kiện trên các phần tử của mảng 04 với 00 9 operator applies the 3 as if each array element were a document in a collection. See Remove All Items That
Match a Specified 9 Condition With 7 for an example.Hoạt động đã cập nhật mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 trong mỗi tài liệu mà nó phù hợp. 07 đã xóa các tài liệu khỏi { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 khi một phần tử của mảng 04 nhúng phù hợp với các điều kiện lựa chọn trong dòng được tô sáng. 9 removes only the elements in the array that match the specified 8
exactly, including order.Mẹo Tài liệu về nhà → Hướng dẫn sử dụng MongoDB 5 ). An empty update results in no changes and no
oplog entry is created (meaning that the operation is a no-op).Tạo bộ sưu tập 6: 3Hoạt động sau đây sẽ loại bỏ
4Xác nhận kết quả với { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }2 5Tạo bộ sưu tập { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }3: 6Hoạt động sau đây sẽ xóa tất cả các mục khỏi mảng { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }4 lớn hơn hoặc bằng ( { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }5) { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }6: 7Sau khi hoạt động cập nhật, tài liệu chỉ có các giá trị nhỏ hơn 6: 8Hoạt động { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }7 sau:
9Ghi chúbulkWrite()Sau khi hoạt động { "_id" : 1, "bar" : [ 1, 2, 3, 8, 1 ] } { "_id" : 2, "bar" : [ 0, 1, 8, 17, 18, 8 ] } { "_id" : 3, "bar" : [ 15, 11, 8, 0, 1, 3 ] }7, bạn có thể xác nhận tài liệu chỉ có giá trị dưới 6 và lớn hơn 3 bằng cách sử dụng thao tác sau: 0Hoạt động trả về như sau: 1Tạo bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6: 2Hoạt động sau đây sẽ loại bỏ tất cả các phần tử khỏi mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 có chứa cả trường { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }8 bằng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }9 và trường 0 bằng 1: 3Biểu thức 9 áp dụng điều kiện cho từng phần tử của mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 như thể nó là một tài liệu cấp cao nhất. 9 expression applies the condition to each element of the { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 array as though it were a top-level document. Sau khi hoạt động, mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 không chứa tài liệu nào chứa cả trường { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }8 bằng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }9 và trường 0 bằng 1. 4Toán tử 9 coi từng phần tử là một đối tượng cấp cao nhất. Truy vấn được áp dụng cho từng yếu tố. Biểu thức không cần sử dụng 00 để chỉ định các điều kiện khớp. 9 operator treats each element as a top-level object. The query is applied to each element. The expression does not need to use 00 to
specify match conditions.Ngược lại, thao tác sau không 9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu: 9 any elements from the original collection: 5Ghi chúThả bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 với: Sau đó tạo lại nó để chạy ví dụ này.recreate it to run this example. Tạo một bộ sưu tập { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }6 mới với các tài liệu được nhúng trong các mảng lồng nhau. 6Sau đó, bạn có thể chỉ định nhiều điều kiện trên các phần tử của mảng 04 với 00 7Hoạt động đã cập nhật mảng { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 trong mỗi tài liệu mà nó phù hợp. 07 đã xóa các tài liệu khỏi { "_id" : 1, "prod" : "Bat", "sizes" : [ "M", "L", "XL" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "S", "M", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "S", "M", "L" ] }7 khi một phần tử của mảng 04 nhúng phù hợp với các điều kiện lựa chọn trong dòng được tô sáng. 8Mẹo |