2014-08-27 6 views
1

juste curieux - j'ai un tas d'enregistrements dans une collection MongoDB qui ont _id mis quelque chose qui a été défini en dehors Mongo (Ce sont les numéros d'identification des données avaient quand il était dans MySQL, et étaient importé avec _id étant défini sur l'ID MySQL). Quel serait le meilleur moyen (de préférence avec PHP) de convertir ces ID en quelque chose généré par Mongo?Changing _id dans MongoDB

Ainsi, au lieu d'un enregistrement ayant _id = 500, il aurait un _id = 53fcf8d6c4d3f7df129e3245.

Merci!

Répondre

1

Vous ne pouvez pas mettre à jour le _id la seule façon sera de récupérer tous les documents de la base de données et les insérer soit avec une nouvelle _id vous vous (documentation here) ou sans généré un champ _id si (parce que je ne pseudocode sais pas pilote php):

for (i=0;i<max_mysql_id;i++){ 
    doc = db.find({_id:i},{_id :0}); //Select document without the _id field 
    db.insert(doc); 
    db.remove({_id:i}); 
} 

en supposant que vous connaissez le _id s que vous avez inséré.

Questions connexes