$push trong mongodb là gì?

Nếu bạn có một bộ tài liệu trong MongoDB chứa các mảng, bạn có thể thêm các giá trị mới vào các mảng đó nếu cần

Tùy thuộc vào yêu cầu cụ thể của bạn, bạn có thể sử dụng toán tử

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
1 hoặc toán tử
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
2

Toán tử db.products.update( { _id: 3 }, { $push: { sizes: "XL" } } )0

Giả sử chúng ta có một bộ sưu tập có tên là

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
1 với các tài liệu sau

{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] }

Và giả sử chúng ta muốn thêm một giá trị vào mảng trong tài liệu 3

Chúng ta có thể sử dụng

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0 kết hợp với
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
3 để nối thêm giá trị

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)

Hãy xem lại bộ sưu tập để xác minh sự thay đổi

db.products.find()

Kết quả

{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L", "XL" ] }

Chúng ta có thể thấy rằng giá trị

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
4 đã được thêm vào mảng trong tài liệu 3

Toán tử

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0 cũng có thể được sử dụng với nhiều từ bổ nghĩa khác nhau, chẳng hạn như
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
6,
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
7 và
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
8

Bạn cũng có thể thêm nhiều giá trị vào mảng bằng cách sử dụng công cụ sửa đổi

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
9

Xem MongoDB

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0 để biết ví dụ

Toán tử db.products.find()1

Toán tử

db.products.find()
1 hoạt động theo cách tương tự như
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0, ngoại trừ một vài điều

  • Nếu giá trị bạn đang cố thêm đã tồn tại trong mảng thì giá trị đó sẽ không được thêm vào
  • Không thể sử dụng các công cụ sửa đổi
    db.products.update(
       { _id: 3 },
       { $push: { sizes: "XL" } }
    )
    6,
    db.products.update(
       { _id: 3 },
       { $push: { sizes: "XL" } }
    )
    7 và
    db.products.update(
       { _id: 3 },
       { $push: { sizes: "XL" } }
    )
    8 với
    db.products.find()
    1

Giả sử bộ sưu tập của chúng tôi trông như thế này

{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] }
2

Hãy chèn nhiều giá trị vào mảng trong tài liệu 2

{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] }
3

Bây giờ hãy kiểm tra lại bộ sưu tập

db.products.find()

Kết quả

{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] }
5

Chúng ta có thể thấy rằng hai giá trị đã được thêm vào mảng trong tài liệu 2 như mong đợi

Ví dụ này sử dụng công cụ sửa đổi

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
9, bạn cũng có thể sử dụng công cụ này với toán tử
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0

Tôi chỉ sử dụng công cụ sửa đổi

db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
9 vì tôi đang thêm nhiều giá trị. Nếu tôi chỉ sử dụng một giá trị, tôi có thể bỏ qua công cụ sửa đổi
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
9 và cú pháp sẽ trông giống ví dụ
db.products.update(
   { _id: 3 },
   { $push: { sizes: "XL" } }
)
0 ở trên hơn

Như đã đề cập, nếu giá trị đã tồn tại, nó sẽ không được thêm vào. Ngoài ra, với cả hai toán tử, nếu bạn thêm một mảng, toàn bộ mảng sẽ được thêm dưới dạng một giá trị riêng biệt trong mảng hiện có

$all trong MongoDB là gì?

$all. Toán tử $all chọn các tài liệu có giá trị của trường là một mảng chứa tất cả các phần tử đã chỉ định .

Dự án $ trong MongoDB là gì?

$project lấy một tài liệu có thể chỉ định việc bao gồm các trường, loại bỏ trường _id, thêm các trường mới và đặt lại giá trị của các trường hiện có . Ngoài ra, bạn có thể chỉ định loại trừ các trường. . Alternatively, you may specify the exclusion of fields.

$first trong MongoDB là gì?

Điều này có nghĩa là $first trả về loại thứ tự đầu tiên cho các tài liệu nằm giữa phần đầu của phân vùng và tài liệu hiện tại .

Gốc $$ là gì?

$$ROOT. Biến $$ROOT chứa tài liệu nguồn cho nhóm . Nếu bạn muốn chuyển chúng qua trạng thái không sửa đổi, bạn có thể thực hiện việc này bằng cách $đẩy $$ROOT vào đầu ra từ nhóm.