Maison > base de données > MongoDB > le corps du texte

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

WBOY
Libérer: 2023-08-31 22:29:02
avant
1558 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!

source:tutorialspoint.com
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!