在mongodb中更新整个集合的_id

时间:2014-06-04 12:24:59

标签: mongodb mongodb-query

mongodb中的新功能,我的要求是更新整个集合的_id字段,如下所示:

orignal:_id: ObjectId("4cc45467c55f4d2d2a000002")

必填:_id: 4cc45467c55f4d2d2a000002

我想从整个集合的所有文档的末尾截断'ObjectId(“from'和'”)'。

此外,我已经看到过类似的帖子,但是我的所有手册都有数百万行/文档希望有一个功能或某些东西来做所有文档。

// store the document in a variable
doc = db.clients.findOne({_id: ObjectId("4cc45467c55f4d2d2a000002")})
// set a new _id on the document
doc._id = ObjectId("4c8a331bda76c559ef000004")
// insert the document, using the new _id
db.clients.insert(doc)
// remove the document with the old _id
db.clients.remove({_id: ObjectId("4cc45467c55f4d2d2a000002")})

由于

1 个答案:

答案 0 :(得分:0)

MongodDB根本不允许修改_id字段。因此,一旦您创建了文档,就无法更改_id的值。

如果您尝试更新_id,则会显示错误消息:Mod on _id not allowed

如果您想更改_id的值(如您所见),则必须将文档复制到变量,更改_id,插入新文档并删除旧的。没有其他办法。