Je souhaite mettre à jour mon champ _id dans l'un des documents (illustré ci-dessous).Mise à jour du champ _id dans MongoDB
{
_id : ObjectId("586d9d5d23352af1a4aa05f7"),
name: "Soham",
age : 99,
city : "XYZ"
}
Je couru les étapes ci-dessous:
var doc = db.names.find({name:"Soham"});
doc._id = 111 ; -- 111 is not present in that collection for any document
db.names.remove({_id:ObjectId("586d9d5d23352af1a4aa05f7")});
db.names.insert(doc);
Les 3 premières lignes n'ont pas jeté une erreur, mais le moment où je couru la commande d'insertion, il a jeté erreur. Quelqu'un peut-il s'il vous plaît laissez-moi savoir ce qui ne va pas.
Merci d'avance !!!
Vous devez d'abord lire la documentation. Le champ '_id' est l'équivalent SQL ** clé primaire dans MongoDB et son format est [ObjectId] (https://docs.mongodb.com/manual/reference/method/ObjectId/). Il a une structure bien définie. Ainsi, vous ** ne pouvez pas ** définir une valeur arbitraire en tant qu'ID pour un document. Deuxièmement, vous ne devriez jamais faire cela. Quel est ton but? –
@guzgarcia '_id' dans MongoDB n'est pas nécessairement un' ObjectId', il peut être tout ce que vous voulez, y compris un objet complexe. – GaspardP
@Soham: Veuillez inclure l'erreur – GaspardP