MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Menghapus Bidang dari Dokumen MongoDB ($ tidak disetel)

Di MongoDB, Anda dapat menggunakan $unset operator pembaruan bidang untuk menghapus bidang sepenuhnya dari dokumen.

$unset operator dirancang khusus untuk menghapus bidang dan nilainya dari dokumen.

Contoh

Misalkan kita memiliki koleksi yang disebut dogs dengan dokumen sebagai berikut:

{ "_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 }

Dan misalkan kita ingin menghapus type bidang (dan nilainya masing-masing) dari semua dokumen.

Kita bisa melakukan ini:

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

Keluaran:

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

Ini memberi tahu kami bahwa empat dokumen cocok (karena kami menggunakan dokumen kueri kosong sebagai argumen pertama) dan empat telah diperbarui.

Sekarang mari kita periksa kembali koleksinya:

db.dogs.find()

Hasil:

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

Kita dapat melihat bahwa type bidang telah sepenuhnya dihapus dari setiap dokumen.

Perhatikan bahwa nilai yang ditentukan dalam $unset ekspresi (yaitu “”) tidak memengaruhi operasi.

Hapus Beberapa Bidang

Anda dapat menentukan beberapa bidang yang akan dihapus dengan memisahkannya dengan koma.

Contoh:

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

Keluaran:

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

Cek koleksinya:

db.dogs.find()

Hasil:

{ "_id" : 1 }
{ "_id" : 2 }
{ "_id" : 6 }
{ "_id" : 7 }

Sekarang hanya _id bidang yang tersisa.

Dokumen Tersemat

Anda dapat menggunakan notasi titik untuk menghapus bidang dari dokumen yang disematkan.

Misalkan kita memiliki koleksi yang disebut pets dengan dokumen berikut:

{
	"_id" : 1,
	"name" : "Wag",
	"details" : {
		"type" : "Dog",
		"weight" : 20,
		"awards" : {
			"Florida Dog Awards" : "Top Dog",
			"New York Marathon" : "Fastest Dog",
			"Sumo 2020" : "Biggest Dog"
		}
	}
}

Dan misalkan kita ingin menghapus awards bidang dari dokumen.

Kita bisa melakukan ini:

db.pets.updateMany(
   { _id: 1 },
   { $unset: { "details.awards": "" } }
)

Keluaran:

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

Sekarang mari kita periksa dokumennya:

db.pets.findOne()

Hasil:

{
	"_id" : 1,
	"name" : "Wag",
	"details" : {
		"type" : "Dog",
		"weight" : 20
	}
}

awards bidang dan nilainya (yang merupakan dokumen yang disematkan) telah dihapus dari dokumen.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Perbarui objek di Array bersarang

  2. Menyimpan null vs tidak menyimpan kunci sama sekali di MongoDB

  3. Cara memperbarui nilai array di Mongoose

  4. Hapus bidang dari semua elemen dalam array di mongodb

  5. Cara menggunakan Enkripsi untuk Melindungi data MongoDB