Maison > base de données > MongoDB > Comment mettre à jour le _id d'un document MongoDB ?

Comment mettre à jour le _id d'un document MongoDB ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-08-31 22:29:02
avant
1674 Les gens l'ont consulté

如何更新 MongoDB 文档的 _id?

Vous ne pouvez pas le mettre à jour, mais vous pouvez enregistrer le nouvel identifiant et supprimer l'ancien. Suivez quelques étapes pour mettre à jour le _id de MongoDB. Les étapes sont les suivantes :

Étape 1 : Dans la première étape, vous devez stocker l'ObjectId dans une variable.

anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
Copier après la connexion

Étape 2 : Dans la deuxième étape, vous devez définir un nouvel identifiant.

yourDeclaredVariableName._id=yourNewObjectIdValue;
Copier après la connexion

Étape 3 : Dans la troisième étape, vous devez insérer le nouvel identifiant dans le document.

db.yourCollectionName.insert(yourDeclaredVariableName);
Copier après la connexion

Étape 4 : Dans la quatrième étape, vous devez supprimer l'ancien identifiant.

db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
Copier après la connexion

Pour comprendre les étapes ci-dessus, créons une collection avec des documents. La requête pour créer une collection à l'aide de documents est la suivante :

> 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")
}
Copier après la connexion

Affichez tous les documents de la collection à l'aide de la méthode find(). La requête est la suivante :

> db.updateIdDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Voici le résultat :

{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
Copier après la connexion

Voici la requête pour mettre à jour le _id d'un document MongoDB :

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 })
Copier après la connexion

Vérifions si le _id a été mis à jour. Affichez tous les documents de la collection à l'aide de la méthode find() :

> db.updateIdDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Voici le résultat :

{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
{ "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
Copier après la connexion

En regardant l'exemple de sortie, le _id de "StudentName":"Robert" a changé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal