Hướng dẫn mongodb remove key from object - mongodb xóa khóa khỏi đối tượng

Tôi cần xóa một khóa và giá trị nhất định khỏi mọi mục trong một bộ sưu tập cụ thể. Tôi đã xem xét loại bỏ và điều đó dường như chỉ dành cho toàn bộ các mục. Nhìn vào cập nhật, tôi không tin rằng việc cập nhật một khóa cụ thể với NULL hoặc một chuỗi trống sẽ đạt được những gì tôi đang cố gắng làm. Tôi rất là người mới bắt đầu với MongoDB, vì vậy xin vui lòng xin lỗi sự thiếu hiểu biết của tôi.

Câu chuyện dài, làm thế nào tôi có thể biến

{
  "_id" : 1234,
  "name" : "Chris",
  "description" : "Awesome"
}

vào trong

{
  "_id" : 1234,
  "name" : "Chris"
}

mà không xóa mục nhập và tạo một mục nhập mới, hoặc sử dụng bất kỳ lệnh phi MongoDB nào? Cảm ơn!

Hướng dẫn mongodb remove key from object - mongodb xóa khóa khỏi đối tượng

Hỏi ngày 13 tháng 4 năm 2012 lúc 18:58Apr 13, 2012 at 18:58

1

Hãy thử

{
  "_id" : 1234,
  "name" : "Chris"
}
9 trong cuộc gọi đến
db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
0.

Như thế này:

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })

Và, như Vikneshwar đã nhận xét, nếu bạn muốn xóa một trường khỏi tất cả (hoặc nhiều) tài liệu, bạn có thể sử dụng

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
1 như thế này:

db.collection_name.updateMany({}, { $unset : { description : 1} })

Hướng dẫn mongodb remove key from object - mongodb xóa khóa khỏi đối tượng

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 19:04Apr 13, 2012 at 19:04

Bee Sanbee SanBee San

2.4752 Huy hiệu vàng18 Huy hiệu bạc19 Huy hiệu đồng2 gold badges18 silver badges19 bronze badges

7

Để tham khảo một gói và xóa các "khóa" khác nhau, hãy thử cái này

db['name1.name2.name3.Properties'].remove([ { "key" : "name_key1" }, { "key" : "name_key2" }, { "key" : "name_key3" } )]

Hướng dẫn mongodb remove key from object - mongodb xóa khóa khỏi đối tượng

Taskinoor

44.9K12 Huy hiệu vàng116 Huy hiệu bạc139 Huy hiệu đồng12 gold badges116 silver badges139 bronze badges

Đã trả lời ngày 24 tháng 4 năm 2015 lúc 16:48Apr 24, 2015 at 16:48

Hướng dẫn mongodb remove key from object - mongodb xóa khóa khỏi đối tượng

Aspadacioaspadacioaspadacio

3132 huy hiệu bạc11 huy hiệu đồng2 silver badges11 bronze badges

Cũng nghĩ về

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
2 sẽ chèn hàng của bạn dưới dạng tài liệu mới nếu
db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
3 không tồn tại hoặc cập nhật tài liệu hiện có nếu có.

Đã trả lời ngày 14 tháng 4 năm 2012 lúc 9:12Apr 14, 2012 at 9:12

Adrien M.Adrien M.Adrien M.

Huy hiệu vàng 3131 Huy hiệu bạc9 Huy hiệu đồng1 gold badge3 silver badges9 bronze badges

Trong MongoDB, bạn có thể sử dụng toán tử cập nhật trường

{
  "_id" : 1234,
  "name" : "Chris"
}
9 để xóa hoàn toàn trường khỏi tài liệu.

Toán tử

{
  "_id" : 1234,
  "name" : "Chris"
}
9 được thiết kế đặc biệt để xóa một trường và giá trị của nó khỏi tài liệu.

Thí dụ

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

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
6 với các tài liệu sau:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

Và giả sử chúng tôi muốn xóa trường

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
7 (và giá trị tương ứng của nó) khỏi tất cả các tài liệu.

Chung ta co thể lam được việc nay:

db.dogs.updateMany(
   { },
   { $unset: { type: "" } }
)

Output:

{ "acknowledged" : true, "matchedCount" : 4, "modifiedCount" : 4 }

Bây giờ, hãy để kiểm tra tài liệu:

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

db.dogs.find()

Result:

{ "_id" : 1, "name" : "Wag", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "weight" : 30 }

Chúng ta có thể thấy rằng trường

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
7 đã bị xóa hoàn toàn khỏi mỗi tài liệu.

Lưu ý rằng giá trị được chỉ định trong biểu thức

{
  "_id" : 1234,
  "name" : "Chris"
}
9 (tức là, phạm vi) không ảnh hưởng đến hoạt động.

Loại bỏ nhiều trường

Bạn có thể chỉ định nhiều trường để xóa bằng cách tách chúng bằng dấu phẩy.

Thí dụ:

{
  "_id" : 1234,
  "name" : "Chris"
}
0

Output:

{ "acknowledged" : true, "matchedCount" : 4, "modifiedCount" : 4 }

Kiểm tra bộ sưu tập:

db.dogs.find()

Result:

{
  "_id" : 1234,
  "name" : "Chris"
}
3

Bây giờ chỉ còn lại các trường

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })
3.

Tài liệu nhúng

Bạn có thể sử dụng ký hiệu DOT để loại bỏ các trường khỏi các tài liệu nhúng.

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

db.collection_name.updateMany({}, { $unset : { description : 1} })
1 với tài liệu sau:

{
  "_id" : 1234,
  "name" : "Chris"
}
4

Và giả sử chúng tôi muốn xóa trường

db.collection_name.updateMany({}, { $unset : { description : 1} })
2 khỏi tài liệu.

Chung ta co thể lam được việc nay:

{
  "_id" : 1234,
  "name" : "Chris"
}
5

Output:

{
  "_id" : 1234,
  "name" : "Chris"
}
6

Bây giờ, hãy để kiểm tra tài liệu:

{
  "_id" : 1234,
  "name" : "Chris"
}
7

Result:

{
  "_id" : 1234,
  "name" : "Chris"
}
8

Trường

db.collection_name.updateMany({}, { $unset : { description : 1} })
2 và giá trị của nó (bản thân nó là một tài liệu nhúng) đã bị xóa khỏi tài liệu.

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

Trong MongoDB, bạn có thể sử dụng toán tử cập nhật trường $ Untet để xóa hoàn toàn trường khỏi tài liệu.Toán tử unset $ unT được thiết kế đặc biệt để xóa một trường và giá trị của nó khỏi tài liệu.use the $unset field update operator to completely remove a field from a document. The $unset operator is designed specifically to delete a field and its value from the document.

Làm cách nào để loại bỏ một đối tượng khỏi một đối tượng 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 thế nào để tôi mở 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.

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.