Heim > Datenbank > MongoDB > Hauptteil

Wie aktualisiere ich die _id eines MongoDB-Dokuments?

WBOY
Freigeben: 2023-08-31 22:29:02
nach vorne
1529 Leute haben es durchsucht

如何更新 MongoDB 文档的 _id?

Sie können es nicht aktualisieren, aber Sie können die neue ID speichern und die alte löschen. Befolgen Sie einige Schritte, um die _id von MongoDB zu aktualisieren. Die Schritte sind wie folgt:

Schritt 1: Im ersten Schritt müssen Sie die ObjectId in einer Variablen speichern.

anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
Nach dem Login kopieren

Schritt 2: Im zweiten Schritt müssen Sie eine neue ID festlegen.

yourDeclaredVariableName._id=yourNewObjectIdValue;
Nach dem Login kopieren

Schritt 3: Im dritten Schritt müssen Sie den neuen Ausweis in das Dokument einfügen.

db.yourCollectionName.insert(yourDeclaredVariableName);
Nach dem Login kopieren

Schritt 4: Im vierten Schritt müssen Sie die alte ID löschen.

db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
Nach dem Login kopieren

Um die oben genannten Schritte zu verstehen, erstellen wir eine Sammlung mit Dokumenten. Die Abfrage zum Erstellen einer Sammlung mithilfe von Dokumenten lautet wie folgt:

> db.updateIdDemo.insertOne({"StudentName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfec6fd07954a4890683")
}
> db.updateIdDemo.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebff66fd07954a4890684")
}
> db.updateIdDemo.insertOne({"StudentName":"Maxwell"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfff6fd07954a4890685")
}
Nach dem Login kopieren

Zeigen Sie alle Dokumente in der Sammlung mithilfe der Methode find() an. Die Abfrage lautet wie folgt:

> db.updateIdDemo.find().pretty();
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist die Ausgabe:

{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
Nach dem Login kopieren

Das Folgende ist die Abfrage zum Aktualisieren der _id eines MongoDB-Dokuments:

Step1:
> myId=db.updateIdDemo.findOne({_id:ObjectId("5c6ebfec6fd07954a4890683")});
{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }

Step 2:
> myId._id=ObjectId("5c6ebfec6fd07954a4890689");
ObjectId("5c6ebfec6fd07954a4890689")

Step 3:
> db.updateIdDemo.insert(myId);
WriteResult({ "nInserted" : 1 })

Step 4:
> db.updateIdDemo.remove({_id:ObjectId("5c6ebfec6fd07954a4890683")});
WriteResult({ "nRemoved" : 1 })
Nach dem Login kopieren

Lassen Sie uns überprüfen, ob die _id aktualisiert wurde. Zeigen Sie alle Dokumente in der Sammlung mit Hilfe der find()-Methode an:

> db.updateIdDemo.find().pretty();
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist die Ausgabe:

{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
{ "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
Nach dem Login kopieren

Wenn Sie sich die Beispielausgabe ansehen, hat sich die _id von "StudentName":"Robert" geändert.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich die _id eines MongoDB-Dokuments?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!