MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zmień nazwę pola w kolekcji MongoDB

W MongoDB możesz zmienić nazwę pola podczas aktualizacji dokumentów w kolekcji.

Aby zmienić nazwę pola, wywołaj $rename operator z aktualną nazwą pola i nową nazwą. Spowoduje to zmianę nazwy pola we wszystkich zgodnych dokumentach, które mają pole o tej nazwie.

Przykład

Załóżmy, że mamy kolekcję o nazwie employees z następującymi dokumentami:

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

I załóżmy, że chcemy zmienić nazwę name pole do employee .

Moglibyśmy to zrobić:

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

Wyjście:

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

Teraz, gdy używamy find() metody zwracania dokumentów w kolekcji, widzimy następujący wynik:

db.employees.find()

Wynik:

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

Zmień nazwę wielu pól

Możesz zmienić nazwy wielu pól, oddzielając je przecinkami.

Przykład:

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

Wyjście:

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

A oto jak teraz wygląda kolekcja:

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

Osadzone dokumenty

Możesz użyć notacji kropkowej, aby zaktualizować nazwy pól w osadzonych dokumentach.

Przykładowy dokument:

db.pets.findOne()

Wynik:

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

Zaktualizujmy niektóre pola w osadzonym dokumencie:

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

Teraz, gdy sprawdzamy dokument, widzimy:

db.pets.findOne()

Wynik:

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

Możemy również zaktualizować nazwy pól dokumentów, które są osadzone w osadzonych dokumentach:

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"
    } 
  } 
)

I jeszcze raz sprawdźmy dokument:

db.pets.findOne()

Wynik:

{
	"_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:Nie można kanonizować zapytania:Projekcja BadValue nie może zawierać kombinacji włączania i wykluczania

  2. Rosnące znaczenie MongoDB w dziedzinie nauki o danych

  3. Połącz NodeJS z MongoDB Droplet

  4. Mongusta:schemat kontra model?

  5. jak skonstruować indeks złożony w mongodb