在MongoDb中更改_id

时间:2014-08-27 18:21:22

标签: php mongodb

好奇 - 我在MongoDB集合中有一堆记录,其中_id设置为在Mongo外部定义的东西(它们是在MySQL中的数据时所拥有的ID,并且是以_id为导入的设置为MySQL ID)。将这些ID转换为Mongo生成的东西的最佳方式(最好是PHP)是什么?

因此,不是_id = 500的记录,而是_id = 53fcf8d6c4d3f7df129e3245。

谢谢!

1 个答案:

答案 0 :(得分:1)

您无法更新_id,因此唯一的方法是从数据库中检索所有文档,并使用您自己生成的新_id (documentation here)或不使用_id插入它们字段所以(伪代码因为我不知道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});
 } 

假设您知道插入的_id