如何改变MongoDB的_id字段?

时间:2013-09-18 09:27:29

标签: mongodb nosql

我正在使用MongoDB开发一个项目,并将用户数据与他们的电子邮件存储为_id字段。

现在意识到这是一个愚蠢的想法,我想添加一个额外的字段,让我们说“userid”作为此集合的新_id字段,并将电子邮件作为常规字段。

有可能吗?

谢谢

1 个答案:

答案 0 :(得分:3)

无法更新文档的_id

目前(可能在可预见的未来)修改_id字段的唯一方法是实际删除旧文档并重新插入新的_id

// Insert our test doc
db.c.insert({_id:1,name:'sammaye'});

// Get it back out
doc=db.c.find({name:'sammaye'});

// Now lets update by removing it first
db.c.remove({_id:doc._id});

// Change the old _id to a new one
doc._id=2;

// Reinsert it and now it has new _id
db.c.insert(doc);