MongoDB kéo đối tượng lồng nhau
Tôi có một tài liệu như thế này
{'mảng'. [['Bob', true], ['Alice', true], ['Mike', false]]} Show
Tôi muốn xóa mục chứa 'Bob', sau khi thao tác, Tôi có thể làm cái này như thế nào? Hoặc tôi nên chọn một kế hoạch khác? -- Trong hướng dẫn MongoDB này, chúng ta sẽ tìm hiểu “MongoDB xóa một phần tử khỏi một mảng”. Chúng tôi sẽ đề cập đến chủ đề này với các hoạt động và ví dụ khác nhau. Đây là những chủ đề sau đây mà chúng ta sẽ đề cập trong hướng dẫn này
Mục lục
Xóa phần tử khỏi mảng trong mongodbMongoDB cung cấp các toán tử sau để xóa phần tử khỏi mảng. Các nhà khai thác là
Bây giờ, chúng ta sẽ tìm hiểu chi tiết tất cả các toán tử này với các ví dụ Toán tử $pull. Toán tử $pull xóa một phần tử khỏi một mảng hiện có khớp với một điều kiện đã chỉ định Giả sử, chúng tôi có một bộ sưu tập được gọi là sản phẩm 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 bằng truy vấn sau
Ở đây, chúng tôi đã sử dụng phương thức update() và xác định toán tử $pull để xóa phần tử XXL trong đó _id là 1. Sau đó, bạn có thể sử dụng phương thức find() để lấy tất cả các tài liệu
Chúng tôi đã xóa thành công một phần tử khỏi mảng Toán tử $pullAll. Toán tử $pullAll xóa tất cả các phần tử khỏi mảng đã xác định Giả sử, chúng tôi có một bộ sưu tập có tên demo với các tài liệu sau
Bây giờ, hãy sử dụng truy vấn sau để xóa tất cả các giá trị của 8 khỏi mảng trong đó _id là 1
Chúng ta có thể xác minh điều này bằng cách kiểm tra bộ sưu tập bằng phương thức find()
Chúng tôi đã xóa thành công phần tử 8 khỏi mảng trong tài liệu 1 Ghi chú Toán tử $pullAll tương tự như $pull. Sự khác biệt là $pullAll xóa các phần tử khớp với các giá trị được liệt kê. Và, toán tử $pull xóa các giá trị bằng cách chỉ định một truy vấn Toán tử $pop. Toán tử $pop được sử dụng để loại bỏ phần tử đầu tiên hoặc cuối cùng của một mảng. Nó cung cấp giá trị -1 để xóa phần tử đầu tiên và 1 để xóa phần tử cuối cùng của mảng Giả sử, chúng tôi có một bộ sưu tập được gọi là kiểm tra với các tài liệu sau
Truy vấn sau sẽ loại bỏ phần tử đầu tiên của mảng trong tài liệu 3
Chúng ta có thể xác minh điều này bằng cách kiểm tra bộ sưu tập bằng phương thức find() ________số 8Chúng tôi đã xóa thành công phần tử đầu tiên khỏi mảng trong tài liệu 3
MongoDB xóa một phần tử khỏi mảng theo idTrong chủ đề này, chúng ta sẽ học cách xóa một phần tử khỏi mảng theo id. Ở đây, mảng theo id có nghĩa là loại bỏ một phần tử mảng id cụ thể. Chúng ta sẽ sử dụng toán tử $pull trong phương thức update() để xóa phần tử khỏi mảng. Hãy để chúng tôi hiểu với sự giúp đỡ của một ví dụ Ví dụ Các tài liệu tiếp theo đã được chèn vào bộ sưu tập cửa hàng
Sau đó, chúng ta sẽ áp dụng truy vấn sau để xóa một phần tử khỏi mảng 0Ở đây, chúng tôi đã chỉ định id 2 vì vậy trong id 2, toán tử $pull sẽ loại bỏ táo và cam khỏi mảng trái cây và loại bỏ cà rốt khỏi mảng rau củ MongoDB xóa một phần tử khỏi mảngChúng ta có thể xác minh điều này bằng cách kiểm tra bộ sưu tập bằng phương thức find() 1Đọc MongoDB tìm tài liệu được chèn lần cuối MongoDB xóa một phần tử khỏi chỉ mục mảngKhông có cách chính xác để kéo hoặc loại bỏ một phần tử theo chỉ số mảng. Đây là một vấn đề mở http. //jira. mongodb. org/duyệt/SERVER-1014 Lỗ hổng đang sử dụng $unset và sau đó là $pull 2Cập nhật. Cách tiếp cận này không phải là nguyên tử và có thể gây ra một số loại điều kiện nếu các máy khách khác đọc và/hoặc ghi giữa hai thao tác. Nếu chúng ta muốn hoạt động là nguyên tử, chúng ta có thể
Nếu bạn sử dụng phương pháp trên để loại bỏ một phần tử mảng theo chỉ mục của nó thì cách này hoạt động Ví dụ Tài liệu sau đây đã được chèn vào bộ sưu tập thông tin 3Bây giờ, chúng ta sẽ áp dụng hai truy vấn để loại bỏ một phần tử mảng theo chỉ số của nó Bước 1. Áp dụng toán tử $unset để đặt giá trị null tại vị trí của “YourIndexValue” 4Hãy để chúng tôi thực hiện truy vấn dưới đây 5Bước 2. Toán tử $pull được sử dụng để lấy giá trị null từ mảng để xóa nó khỏi phần tử mảng 6Hãy để chúng tôi thực hiện truy vấn dưới đây 7Sau đó kiểm tra phần tử mảng “Java” đã bị xóa hay chưa. Truy vấn như sau 8MongoDB xóa một phần tử khỏi chỉ mục mảngNhìn vào kết quả, chúng ta đã loại bỏ thành công phần tử mảng “Java” Đọc thứ tự MongoDB theo ngày MongoDB xóa phần tử cuối cùng khỏi mảngTrong chủ đề này, bạn sẽ học cách xóa phần tử cuối cùng khỏi mảng. Để làm được điều đó, chúng ta sẽ sử dụng toán tử $pop để xóa phần tử cuối cùng khỏi mảng. Nó cung cấp giá trị -1 để xóa phần tử đầu tiên và 1 để xóa phần tử cuối cùng của mảng Vì vậy, ở đây, chúng ta sẽ sử dụng 1 để loại bỏ phần tử cuối cùng của một mảng. Hãy hiểu với sự giúp đỡ của một ví dụ Ví dụ Các tài liệu sau đã được chèn vào bộ sưu tập cửa hàng 9Bây giờ, chúng ta sẽ áp dụng truy vấn dưới đây để xóa phần tử cuối cùng khỏi mảng 0Ở đây, chúng tôi đã áp dụng toán tử $pop với giá trị 1 để xóa phần tử cuối cùng khỏi tài liệu 1 mảng fruit Sau đó, kiểm tra phần tử mảng để lấy tất cả các tài liệu bằng cách sử dụng phương thức find() 1MongoDB xóa phần tử cuối cùng khỏi mảngChúng tôi đã loại bỏ thành công phần tử mảng cuối cùng “nho” khỏi trường trái cây trong tài liệu 1 Đọc MongoDB tìm chuỗi chứa MongoDB xóa một phần tử khỏi một mảng lồng nhauTrong chủ đề này, chúng ta sẽ học cách xóa một phần tử khỏi mảng lồng nhau. Chúng ta sẽ sử dụng toán tử $pull để xóa phần tử khỏi mảng lồng nhau. Hãy để chúng tôi hiểu với sự giúp đỡ của một ví dụ Ví dụ Các tài liệu sau đây đã được đưa vào bộ sưu tập hàng tồn kho 2Bây giờ, chúng ta sẽ áp dụng truy vấn bên dưới để xóa một phần tử khỏi mảng lồng nhau 3Sau đó, lấy tất cả các tài liệu bằng phương thức find() 4MongoDB xóa một phần tử khỏi một mảng lồng nhauChúng tôi đã xóa thành công phần tử khỏi mảng lồng nhau Đọc MongoDB tìm nhiều giá trị MongoDB xóa nhiều phần tử khỏi mảngTrong chủ đề này, bạn sẽ học cách loại bỏ nhiều phần tử khỏi mảng. Chúng ta sẽ sử dụng toán tử $pullAll để loại bỏ nhiều phần tử khỏi mảng. Hãy để chúng tôi hiểu với sự giúp đỡ của một ví dụ Ví dụ Các tài liệu sau đây đã được đưa vào bộ sưu tập sinh viên 5Bây giờ, chúng tôi sẽ áp dụng truy vấn bên dưới để xóa nhiều phần tử khỏi trường thành tích của mảng trong id 1 6MongoDB xóa nhiều phần tử khỏi mảngChúng tôi đã xóa thành công nhiều phần tử khỏi trường đạt được mảng trong đó id là 2 Bạn cũng có thể thích các hướng dẫn MongoDB sau đây
Vì vậy, trong hướng dẫn này, chúng ta đã học “MongoDB xóa một phần tử khỏi mảng” bằng các cách tiếp cận khác nhau với các ví dụ. Đây là những chủ đề sau mà chúng tôi đã đề cập trong hướng dẫn này
Bijay Tôi là Bijay có hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Trong thời gian này, tôi đã làm việc trên MariaDB và sử dụng nó trong rất nhiều dự án. Hầu hết độc giả của chúng tôi đến từ Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v. Bạn muốn tìm hiểu MariaDB? . Ngoài ra, tôi là MVP của Microsoft Làm cách nào để lấy dữ liệu từ đối tượng lồng nhau trong MongoDB?Truy cập tài liệu nhúng/lồng nhau –
. using dot notation and when you are using dot notation, then the field and the nested field must be inside the quotation marks.
Làm cách nào để sử dụng $push trong MongoDB?Nếu trường không có trong tài liệu cần cập nhật, $push sẽ thêm trường mảng có giá trị làm thành phần của nó . Nếu trường không phải là một mảng, hoạt động sẽ thất bại. Nếu giá trị là một mảng, $push sẽ thêm toàn bộ mảng dưới dạng một phần tử. Để thêm riêng từng phần tử của giá trị, hãy sử dụng công cụ sửa đổi $each với $push.
Làm cách nào để xóa dữ liệu khỏi mảng lồng nhau trong MongoDB?$pull sẽ xóa giá trị đã chỉ định khỏi mảng . Trong trường hợp bạn không chắc mình muốn xóa giá trị cụ thể nào khỏi mảng mà chỉ muốn xóa giá trị đầu hoặc cuối trong mảng thì có thể sử dụng toán tử $pop.
Làm cách nào để sử dụng $set trong MongoDB?Toán tử $set thay thế giá trị của một trường bằng giá trị đã chỉ định . Biểu thức toán tử $set có dạng như sau. { $set. { |