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ơ:

{_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ử

db.products.find()
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00 để chỉ định các điều kiện khớp.

Ngược lại, thao tác sau không

db.products.find()
9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu:

  • db.products.find()
    9
  • { "_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
  • { "_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" ] }
    1

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

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
04 với
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)

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.
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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.

db.products.find()

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ẹo

MongoDB 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ử

db.products.find()
9

Toán tử

db.products.find()
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.

db.foo.update( 
  { _id: 1 }, 
  { $pullAll: { bar: [ 7 ] } } 
)

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:

db.foo.find()

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:

db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 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:

db.products.find()

Result:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
1

Toán tử

db.products.find()
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00 để chỉ định các điều kiện khớp.MongoDB Manual

Ngược lại, thao tác sau không
db.products.find()
9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu:

The

db.products.find()
9 operator removes from an existing array all instances of a value or values that match a specified condition.

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:
db.products.find()
9
operator has the form:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
2

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.

Sau đó, bạn có thể chỉ định nhiều điều kiện trên các phần tử của mảng

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
04 với
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00
db.products.find()
9
operator applies the
db.foo.update( 
  { _id: 1 }, 
  { $pullAll: { bar: [ 7 ] } } 
)
3 as if each array element were a document in a collection. See Remove All Items That Match a Specified
db.products.find()
9 Condition With
db.foo.update( 
  { _id: 1 }, 
  { $pullAll: { bar: [ 7 ] } } 
)
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.
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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.
db.products.find()
9
removes only the elements in the array that match the specified
db.foo.update( 
  { _id: 1 }, 
  { $pullAll: { bar: [ 7 ] } } 
)
8 exactly, including order.

Mẹo

db.products.find()
9 removes only the elements in the array that have the exact same fields and values. The ordering of the fields can differ.

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

db.products.find()
9 with an empty operand expression (
db.foo.find()
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

db.foo.find()
6:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
3

Hoạt động sau đây sẽ loại bỏ

  • db.foo.find()
    7 và
    db.foo.find()
    8 từ mảng
    db.foo.find()
    9

  • { "_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 ] }
    0 từ 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 ] }
    1

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
4

Xá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

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
5

Tạ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:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
6

Hoạ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:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
7

Sau khi hoạt động cập nhật, tài liệu chỉ có các giá trị nhỏ hơn 6:

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
8

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 sau:

  • Tạ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 ] }
    8.

  • Loại bỏ 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.

  • Loại bỏ 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 nhỏ hơn hoặc 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" ] }
    3)
    { "_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" ] }
    4.

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
9

Ghi 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:

db.products.find()
0

Hoạt động trả về như sau:

db.products.find()
1

Tạ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:

db.products.find()
2

Hoạ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
db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 1 } } 
)
0 bằng
db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 1 } } 
)
1:

db.products.find()
3

Biểu thức

db.products.find()
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.
db.products.find()
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
db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 1 } } 
)
0 bằng
db.products.update( 
  { _id: 2 }, 
  { $pop: { sizes: 1 } } 
)
1.

db.products.find()
4

Toán tử

db.products.find()
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00 để chỉ định các điều kiện khớp.
db.products.find()
9
operator treats each element as a top-level object. The query is applied to each element. The expression does not need to use
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00 to specify match conditions.

Ngược lại, thao tác sau không

db.products.find()
9 bất kỳ yếu tố nào từ bộ sưu tập ban đầu:
db.products.find()
9
any elements from the original collection:

db.products.find()
5

Ghi 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.

db.products.find()
6

Sau đó, bạn có thể chỉ định nhiều điều kiện trên các phần tử của mảng

db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
04 với
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
00

db.products.find()
7

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.
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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
db.products.update( 
  { _id: 1 }, 
  { $pull: { sizes: "XXL" } } 
)
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.

db.products.find()
8

Mẹo