Cập nhật mảng trong MongoDB Node js
Chào mừng bạn đến với bài đăng thứ hai trong loạt bài "MongoDB Animated 🍩" của tôi, nơi tôi cung cấp các ví dụ hoạt hình và giải thích cho các hoạt động của MongoDB mà tôi không bao giờ muốn tìm kiếm trên Google nữa Show
Trong bài đăng này, chúng tôi sẽ xem xét các chiến lược khác nhau để cập nhật các phần tử từ các mảng được nhúng Tôi sẽ sử dụng bộ sưu tập ví dụ tương tự được sử dụng trong phần trước của loạt bài này. Nó bao gồm một bộ sưu tập đơn giản các "combo bánh rán" từ một cửa hàng bánh rán. Mỗi combo đều có tên và các loại bánh sẽ được tặng kèm nếu khách chọn combo đó. Đây là lược đồ hoàn chỉnh
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Cập nhật các yếu tốCập nhật tất cả các yếu tố với $[]Sử dụng toán tử 4 kết hợp với toán tử tất cả vị trí 0 cho phép chúng tôi cập nhật tất cả các phần tử mảngVí dụ: giả sử chúng tôi muốn loại bỏ kính khỏi tất cả các bánh rán trong tất cả các tài liệu đang hoạt động
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Một cách khác để loại bỏ lớp kính có thể là xóa thuộc tính 1 khỏi tất cả các bánh rán trong tất cả các tài liệu đang hoạt động. Điều này có thể được thực hiện bằng cách sử dụng toán tử 2 kết hợp với toán tử vị trí tất cả 0.
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Cập nhật phần tử đầu tiên với $Bạn có thể chỉ cần cập nhật phần tử đầu tiên của mảng. Trong trường hợp đó, bạn nên sử dụng toán tử vị trí 6. Toán tử vị trí này sẽ cho phép chúng ta áp dụng các thay đổi cho phần tử đầu tiên khớp với 7 (tham số đầu tiên của phương thức 8). Trường mảng phải là một phần của 7Bằng cách kết hợp toán tử vị trí 6 với 4, chúng tôi có thể cập nhật các thuộc tính từ phần tử mảng đầu tiên khớp với 7 của chúng tôiTrong ví dụ sau, chúng tôi sẽ cập nhật chiếc bánh rán màu trắng đầu tiên trong mọi tài liệu và thay đổi màu của nó thành "hồng" 5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Toán tử vị trí 6 cũng có thể được kết hợp với 2 để xóa một thuộc tính khỏi phần tử mảng đầu tiên khớp với 7 của chúng taVì vậy, để thử điều đó, hãy xóa màu khỏi chiếc bánh rán màu trắng đầu tiên được tìm thấy trên mỗi tài liệu 9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Updating elements that match a filter with $[]Để cập nhật một tập hợp các phần tử phù hợp với các bộ lọc nhất định, chúng ta phải sử dụng toán tử vị trí được lọc 6 trong đó 7 là trình giữ chỗ cho một giá trị đại diện cho một phần tử của mảngSau đó, chúng ta phải sử dụng tham số thứ ba (tùy chọn) của phương thức 8 để chỉ định một bộ 9. Ở đây chúng tôi sẽ xác định các điều kiện mà mỗi phần tử mảng chúng tôi muốn cập nhật phải đáp ứng để được cập nhậtTrong ví dụ tiếp theo, chúng tôi sẽ thay đổi mọi màu bánh rán trắng thành xanh lục, chỉ trong các tài liệu đang hoạt động 4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Kết hợp toán tử vị trí đã lọc 6 (hoặc trong ví dụ của chúng tôi là 51) với toán tử 2, chúng tôi có thể xóa một thuộc tính khỏi tất cả các phần tử trong mảng phù hợp với tiêu chí 53 của chúng tôiVí dụ: chúng tôi có thể xóa màu của mọi chiếc bánh rán màu trắng trong mọi tài liệu đang hoạt động 9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Hãy tự mình thửTôi đã tạo một repo để thử các truy vấn MongoDB trong bộ nhớ bằng Node. js với trình điều khiển Jest và MongoDB Node. Tôi đã sử dụng các thử nghiệm để thực hiện truy vấn và xác minh rằng mọi thứ đã được cập nhật chính xác. Tôi cũng bao gồm một trình ghi nhật ký in các tài liệu đã cập nhật trong bảng điều khiển hiển thị các thay đổi đã được áp dụng bằng cú pháp tô sáng khác Bạn có thể tìm thấy các ví dụ tôi đưa vào bài viết này trong thư mục 54pawap90 / try-mongodb-queryMột dự án mẫu đơn giản để thử các truy vấn MongoDB trong bộ nhớ bằng cách sử dụng JestMột dự án đơn giản để thử các truy vấn MongoDB trong bộ nhớ bằng cách sử dụng Jest. Bao gồm một trình ghi nhật ký ghi lại sự khác biệt giữa dữ liệu thử nghiệm ban đầu và dữ liệu sau khi cập nhật bằng cách sử dụng tô sáng cú pháp khác Những gì bạn cần để chạy dự án này
(MongoDB không bắt buộc vì nó sẽ chạy trong bộ nhớ, được xử lý bởi gói 55)dùng thử1. Cài đặt phụ thuộc 22. Chạy thử nghiệm 3Công cụCác công cụ chính được sử dụng trong dự án này
Xem trên GitHub Tài nguyênĐể biết thêm thông tin về cách cập nhật mảng, đây là một số tài nguyên từ tài liệu chính thức của MongoDB
Tôi quan tâm đến phản hồi của bạn. Bài đăng này có hữu ích không? Làm cách nào để cập nhật một mảng trong MongoDB Nodejs?Để thực hiện cập nhật trên tất cả các phần tử mảng nhúng của từng tài liệu phù hợp với truy vấn của bạn, hãy sử dụng toán tử vị trí đã lọc $[ ] chỉ định các phần tử mảng phù hợp trong tài liệu cập nhật.
Làm cách nào để cập nhật một mảng trong MongoDB?Tìm hiểu cách cập nhật các trường mảng trong tài liệu trong bộ sưu tập MongoDB. Bạn có thể sử dụng các phương thức updateOne() hoặc updateMany() để thêm, cập nhật hoặc xóa các phần tử mảng dựa trên các tiêu chí đã chỉ định . Nên sử dụng phương thức updateMany() để cập nhật nhiều mảng trong một bộ sưu tập.
Làm cách nào để chèn mảng trong MongoDB bằng nút JS?Để chèn nhiều tài liệu vào một bộ sưu tập trong MongoDB, chúng ta sử dụng phương thức insertMany() . Tham số đầu tiên của phương thức insertMany() là một mảng các đối tượng, chứa dữ liệu bạn muốn chèn.
Làm cách nào để cập nhật giá trị mảng trong cầy mangut?Trình vỏ MongoDB cung cấp các phương thức sau để cập nhật tài liệu trong bộ sưu tập. . Để cập nhật một tài liệu, hãy sử dụng db. thu thập. cập nhậtOne() Để cập nhật nhiều tài liệu, hãy sử dụng db. thu thập. cập nhậtMany() Để thay thế một tài liệu, hãy sử dụng db. thu thập. thay thếOne() |