Hướng dẫn mongodb addtoset document - tài liệu addtoset mongodb
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual 2 Trình khai thác 2 thêm giá trị vào một mảng trừ khi giá trị đã có mặt, trong trường hợp đó 2 không làm gì với mảng đó.The db.pigments.insertOne( { _id: 1, colors: "blue, green, red" } ) db.pigments.insertOne( { _id: 1, colors: "blue, green, red" } ) Toán tử 2 có biểu mẫu: 2 operator has the form:
Để chỉ định 6 trong tài liệu nhúng hoặc trong một mảng, hãy sử dụng ký hiệu DOT.Bắt đầu từ MongoDB 5.0, cập nhật các nhà khai thác xử lý các trường tài liệu với tên dựa trên chuỗi theo thứ tự từ vựng. Các trường có tên số được xử lý theo thứ tự số. Xem Cập nhật hành vi của các nhà khai thác để biết chi tiết. db.pigments.insertOne( { _id: 1, colors: "blue, green, red" } ) db.pigments.insertOne( { _id: 1, colors: "blue, green, red" } ) db.pigments.insertOne( { _id: 1, colors: "blue, green, red" } ) Bắt đầu từ MongoDB 5.0, 9 không còn gây ra lỗi khi bạn sử dụng toán tử cập nhật như 2 với biểu thức toán hạng trống ( 1). Một bản cập nhật trống dẫn đến không có thay đổi và không có mục nhập oplog được tạo (có nghĩa là hoạt động là không có op). 2 with an empty operand expression ( 1 ). An empty update results in no changes and no oplog entry is created (meaning that the operation is a no-op).Nếu bạn sử dụng 2 trên một trường không có trong tài liệu để cập nhật, 2 sẽ tạo trường mảng với giá trị được chỉ định làm phần tử của nó. 2 on a field that is absent from the document to update, 2 creates the array field with the specified value as its element.Nếu bạn sử dụng 2 trên một trường không phải là một mảng, thao tác sẽ thất bại. 2 on a field that is not an array, the operation will fail.Ví dụ: tạo bộ sưu tập 5:
Trường 6 không phải là một mảng. Hoạt động 2 sau đây không thành công: 2 operation fails:
Nếu giá trị là một mảng, 2 nối toàn bộ mảng là một phần tử duy nhất. 2 appends the whole array as a single element.Tạo bộ sưu tập 9:
Hoạt động sau đây nối cho mảng 0 vào trường 1:
Mảng 0 được thêm vào dưới dạng một phần tử:
MẹoNếu giá trị là một tài liệu, MongoDB xác định rằng tài liệu là một bản sao nếu một tài liệu hiện có trong mảng khớp với tài liệu cần thêm chính xác; tức là tài liệu hiện có có cùng các trường và giá trị chính xác và các trường theo cùng một thứ tự. Do đó, các vấn đề thứ tự trường và bạn không thể chỉ định rằng MongoDB chỉ so sánh một tập hợp con của các trường trong tài liệu để xác định xem tài liệu có phải là bản sao của một phần tử mảng hiện có hay không. Tạo bộ sưu tập 3:
Hoạt động sau đây thêm phần tử 4 vào mảng 5 vì 4 không tồn tại trong mảng:
Hoạt động 2 sau đây không có hiệu lực vì 8 đã là một yếu tố của mảng 5: 2 operation has no effect because 8 is already an element of the 5 array:
Bạn có thể sử dụng toán tử 2 với công cụ sửa đổi 1. Trình sửa đổi 1 cho phép toán tử 2 thêm nhiều giá trị vào trường mảng. 2 operator with the
1 modifier. The 1 modifier allows the 2 operator to add multiple values to the array
field.
Bộ sưu tập 3 có tài liệu sau:
Sau đó, thao tác sau sử dụng toán tử 2 với công cụ sửa đổi 1 để thêm nhiều phần tử vào mảng 5: 2 operator with the 1 modifier to add multiple elements to the 5 array: 0Hoạt động chỉ thêm 8 và 4 vào mảng 5. 1 đã ở trong mảng: 1Mẹo |