Hướng dẫn mongodb delete subdocument array item - mongodb xóa mục mảng subocument

Tôi có lược đồ nhỏ này cho người dùng:

{
 username: String,
 contacts: Array
}

Vì vậy, ví dụ, một số liên hệ của người dùng sẽ trông như thế này:

{
 username: "user",
 contacts: [{'id': ObjectId['525.....etc'], 'approved': false}, {'id':ObjectId['534.....etc'], 'approved': true}]
}

Bây giờ tôi cần xóa một mục khỏi danh bạ để tôi làm:delete an item from contacts so I do:

model.findByIdAndUpdate[23, {'$pull': {
              'contacts':{'id':'525.....etc'}
              }}];

Nhưng dường như không hoạt động, không có lỗi nhưng nó không bị xóa, tôi chỉ muốn trả lại tài liệu này cho người dùng:it doesn't gets deleted, I just would like to return this document for the user:

{
     username: "user",
     contacts: [{'id':ObjectId['534.....etc'], 'approved': false}]
    }

Làm thế nào để đạt được điều này?

Cách xóa Subdocument MongoDB với các ví dụ về mã

Trong phiên này, chúng tôi sẽ cố gắng giải quyết cách xóa câu đố MongoDB Subdocument bằng cách sử dụng ngôn ngữ máy tính. Mã theo sau phục vụ như một minh họa của điểm này.

db.getCollection['products'].update[{}, 
{$pull: {reviews:
{user: ObjectId["5f6e2e0b70eb0208fc84011a"]}}},
{multi: true}]

Chúng tôi đã có thể hiểu cách sửa chữa cách xóa vấn đề Subdocument MongoDB nhờ nhiều ví dụ.

Làm cách nào để xóa một mục trong MongoDB?

Shell MongoDB cung cấp các phương pháp sau để xóa tài liệu khỏi bộ sưu tập:

  • Để xóa nhiều tài liệu, sử dụng DB. thu thập. Deletemany [].
  • Để xóa một tài liệu duy nhất, sử dụng DB. thu thập. Xóa [].

Làm cách nào để xóa dữ liệu lồng nhau trong MongoDB?

Để loại bỏ một phần tử khỏi một mảng được lồng gấp đôi trong tài liệu MongoDB, bạn có thể sử dụng toán tử $ kéo. Bây giờ trường "userzipcode": "20010" đã bị xóa khỏi một mảng được lồng gấp đôi.30-JUL-2019

Làm cách nào để xóa toàn bộ một mảng trong MongoDB?

Toán tử Pull $ sẽ 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. Toán tử Pull $ có biểu mẫu: {$ pull: {: ,,,}} để chỉ định một trong một tài liệu nhúng hoặc trong một mảng, sử dụng ký hiệu dấu chấm.

Subdocument trong MongoDB là gì?

Trong Mongoose, Subdocument là các tài liệu được lồng trong các tài liệu khác. Bạn có thể phát hiện ra một Subdocument khi một lược đồ được lồng trong lược đồ khác. Lưu ý: MongoDB gọi các tài liệu nhúng Subdocument.22-JAN-2020

Làm cách nào để xóa một bộ dữ liệu?

Để xóa toàn bộ bộ dữ liệu, chọn tùy chọn tập dữ liệu [tùy chọn 2]. Bảng điều khiển tiếp theo bạn thấy cho phép bạn thực hiện một số tác vụ quản lý tập dữ liệu. Để xóa tập dữ liệu, hãy nhập D để xóa trên dòng tùy chọn.

Làm cách nào để xóa một mục khỏi danh sách?

Toán tử DEL xóa mục hoặc phần tử tại vị trí chỉ mục được chỉ định khỏi danh sách, nhưng mục đã loại bỏ không được trả về, vì nó là với phương thức pop []. Có ba cách mà bạn có thể xóa các phần tử khỏi danh sách:

  • Sử dụng phương thức Remove [].
  • Sử dụng phương thức pop [] của đối tượng.
  • Sử dụng toán tử DEL.

Làm cách nào để xóa một danh sách lồng nhau?

Loại bỏ các mục khỏi một danh sách lồng nhau. Nếu bạn biết chỉ mục của mục bạn muốn, bạn có thể sử dụng phương thức pop []. Nó sửa đổi danh sách và trả về mục đã xóa. Nếu bạn không cần giá trị bị loại bỏ, hãy sử dụng câu lệnh DEL.

Xóa mềm trong MongoDB là gì?

Xóa mềm có nghĩa là đặt cờ được đặt trên tài liệu để đánh dấu tài liệu bị xóa, thay vì thực sự xóa tài liệu.07-AUG-2022

Làm cách nào để xóa nhiều bộ sưu tập trong MongoDB?

Trong MongoDB, bạn được phép xóa các tài liệu hiện có khỏi bộ sưu tập bằng DB. thu thập. Phương thức deletemany []. Phương pháp này xóa nhiều tài liệu khỏi bộ sưu tập theo bộ lọc.27-FEB-2020

Làm thế nào để bạn xóa toàn bộ một mảng?

Để xóa phần tử của mảng bằng phương thức Remove [], trước tiên, chúng ta phải chuyển đổi mảng thành một danh sách mảng. Khi mảng được chuyển đổi thành một danh sách mảng thì chúng ta có thể sử dụng phương thức xóa [] của lớp ArrayList để xóa các phần tử mảng.

Để xóa Subdoc có từ tài liệu, hãy sử dụng $ Pull cùng với Update []. Trước tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu -$pull along with update[]. Let us first create a collection with documents −

> db.demo538.insertOne[
... {
...    id:101,
...    "details":
...    {
...       anotherDetails:
...       [
...          {
...             "Name":"Chris",
...             Age:21
...          },
...          {
...             "Name":"David",
...             Age:23
...          },
...          {
...             "Name":"Bob",
...             Age:20
...          }
...       ]
...    }
... }
... ];
{
   "acknowledged" : true,
   "insertedId" : ObjectId["5e8c8f0aef4dcbee04fbbc08"]
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với phương thức trợ giúp của find [] -

> db.demo538.find[];

Điều này sẽ tạo ra đầu ra sau -

{ "_id" : ObjectId["5e8c8f0aef4dcbee04fbbc08"], "id" : 101, "details" : { "anotherDetails" : [
   { "Name" : "Chris", "Age" : 21 }, { "Name" : "David", "Age" : 23 }, { "Name" : "Bob", "Age" : 20 } ]
} }

Sau đây là truy vấn để xóa Subdoc có từ tài liệu -

> db.demo538.update[{ id:101},
... {$pull : { "details.anotherDetails" : {"Age":23} } } ]
WriteResult[{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }]

Hiển thị tất cả các tài liệu từ một bộ sưu tập với phương thức trợ giúp của find [] -

> db.demo538.find[];

Điều này sẽ tạo ra đầu ra sau -

{
 username: "user",
 contacts: [{'id': ObjectId['525.....etc'], 'approved': false}, {'id':ObjectId['534.....etc'], 'approved': true}]
}
0

Sau đây là truy vấn để xóa Subdoc có từ tài liệu -

  • Điều này sẽ tạo ra đầu ra sau -
  • Cập nhật vào ngày 14-tháng 5 năm 2020 06:42:13
  • Câu hỏi và câu trả lời liên quan
  • Truy vấn MongoDB để loại bỏ các phần tử mảng khỏi tài liệu?
  • Truy vấn MongoDB để xóa một tài liệu cụ thể
  • Truy vấn Subdocument MongoDB để in trên một dòng?
  • Truy vấn MongoDB để loại bỏ mục khỏi mảng?
  • Hiển thị MongoDB với tài liệu và ví dụ Subdocument
  • Làm thế nào để sắp xếp, chọn và truy vấn Subdocument trong MongoDB?
  • MongoDB truy vấn để tìm và trả lại Subdocument với các tiêu chí?
  • Truy vấn MongoDB để loại bỏ toàn bộ mảng khỏi bộ sưu tập?
  • Làm thế nào để xóa một trường hoàn toàn khỏi một tài liệu MongoDB?
  • MongoDB truy vấn để cập nhật tài liệu lồng nhau
  • MongoDB truy vấn để cập nhật một tài liệu cụ thể từ bộ sưu tập
  • Truy vấn MongoDB để lấy một giá trị cụ thể từ một tài liệu
  • Xóa các giá trị khỏi một ma trận như tài liệu trong MongoDB

Làm cách nào để xóa một bộ quần áo trong MongoDB?

Shell MongoDB cung cấp các phương pháp sau để xóa tài liệu khỏi bộ sưu tập:..
Để xóa nhiều tài liệu, sử dụng DB.thu thập.deletemany [] ..
Để xóa một tài liệu duy nhất, sử dụng DB.thu thập.DeleteOne [] ..

Làm cách nào để loại bỏ một phần tử khỏi một mảng trong MongoDB?

Để loại bỏ một phần tử, cập nhật và sử dụng $ pull trong MongoDB.Toán tử Pull $ sẽ 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.update, and use $pull in MongoDB. The $pull operator removes from an existing array all instances of a value or values that match a specified condition.

Làm cách nào để xóa một tài liệu lồng nhau trong MongoDB?

Để loại bỏ một phần tử khỏi một mảng được lồng gấp đôi trong tài liệu MongoDB, bạn có thể sử dụng toán tử $ kéo.Bây giờ trường "userzipcode": "20010" đã bị xóa khỏi một mảng được lồng gấp đôi.use $pull operator. Now field "UserZipCode": "20010" has been removed from a doubly-nested array.

Làm thế nào để bạn hủy bỏ một trường trong MongoDB?

Toán tử $ Untet xóa một trường cụ thể.Hãy xem xét cú pháp sau: {$ unset: {: "", ...}} Giá trị được chỉ định trong biểu thức $ Untet [tức là "" "] không ảnh hưởng đến hoạt động.{ $unset: { : "", ... } } The specified value in the $unset expression [i.e. "" ] does not impact the operation.

Bài Viết Liên Quan

Chủ Đề