MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Đổi tên một trường trong bộ sưu tập MongoDB

Trong MongoDB, bạn có thể đổi tên trường khi cập nhật tài liệu trong bộ sưu tập.

Để đổi tên một trường, hãy gọi $rename toán tử với tên hiện tại của trường và tên mới. Thao tác này đổi tên trường trong tất cả các tài liệu phù hợp có trường với tên đó.

Ví dụ

Giả sử chúng ta có một bộ sưu tập được gọi là employees với các tài liệu sau:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Và giả sử chúng ta muốn đổi tên name trường đến employees .

Chúng tôi có thể làm điều này:

db.employees.updateMany( 
  { }, 
  { $rename: { "name": "employee" } } 
)

Đầu ra:

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

Bây giờ khi chúng ta sử dụng find() để trả về các tài liệu trong bộ sưu tập, chúng ta thấy kết quả sau:

db.employees.find()

Kết quả:

{ "_id" : 1, "salary" : 55000, "employee" : "Sandy" }
{ "_id" : 2, "salary" : 128000, "employee" : "Sarah" }
{ "_id" : 3, "salary" : 25000, "employee" : "Fritz" }
{ "_id" : 4, "salary" : 45000, "employee" : "Chris" }
{ "_id" : 5, "salary" : 82000, "employee" : "Beck" }

Đổi tên nhiều trường

Bạn có thể đổi tên nhiều trường bằng cách phân tách chúng bằng dấu phẩy.

Ví dụ:

db.employees.updateMany( 
  { }, 
  { $rename: { "employee": "e", "salary": "s" } } 
)

Đầu ra:

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

Và đây là giao diện của bộ sưu tập bây giờ:

{ "_id" : 1, "e" : "Sandy", "s" : 55000 }
{ "_id" : 2, "e" : "Sarah", "s" : 128000 }
{ "_id" : 3, "e" : "Fritz", "s" : 25000 }
{ "_id" : 4, "e" : "Chris", "s" : 45000 }
{ "_id" : 5, "e" : "Beck", "s" : 82000 }

Tài liệu được nhúng

Bạn có thể sử dụng ký hiệu dấu chấm để cập nhật tên trường trong tài liệu nhúng.

Tài liệu mẫu:

db.pets.findOne()

Kết quả:

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

Hãy cập nhật một số trường trong tài liệu được nhúng:

db.pets.updateMany( 
  { }, 
  { $rename: { 
      "details.type": "details.t", 
      "details.weight": "details.w",
      "details.awards": "details.a"
    } 
  } 
)

Bây giờ khi chúng tôi kiểm tra tài liệu, chúng tôi thấy như sau:

db.pets.findOne()

Kết quả:

{
	"_id" : 1,
	"name" : "Wag",
	"details" : {
		"a" : {
			"Florida Dog Awards" : "Top Dog",
			"New York Marathon" : "Fastest Dog",
			"Sumo 2020" : "Biggest Dog"
		},
		"t" : "Dog",
		"w" : 20
	}
}

Chúng tôi cũng có thể cập nhật tên trường của tài liệu được nhúng trong tài liệu được nhúng:

db.pets.updateMany( 
  { }, 
  { $rename: { 
      "details.a.Florida Dog Awards": "details.a.fda",
      "details.a.New York Marathon": "details.a.nym",
      "details.a.Sumo 2020": "details.a.s2020"
    } 
  } 
)

Và hãy kiểm tra lại tài liệu:

db.pets.findOne()

Kết quả:

{
	"_id" : 1,
	"name" : "Wag",
	"details" : {
		"a" : {
			"fda" : "Top Dog",
			"nym" : "Fastest Dog",
			"s2020" : "Biggest Dog"
		},
		"t" : "Dog",
		"w" : 20
	}
}

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB deleteOne ()

  2. Hiệu suất MongoDB với cấu trúc dữ liệu ngày càng tăng

  3. MongoDB $ độToRadians

  4. MongoDB sort ()

  5. Cập nhật phần tử trong mảng nếu tồn tại khác chèn phần tử mới vào mảng đó trong MongoDb