mongodb - 更新 MongoDB 中的 _id 字段

标签 mongodb crud insert-update

我想更新其中一个文档中的 _id 字段(如下所示)。

{
_id : ObjectId("586d9d5d23352af1a4aa05f7"),
name: "Soham",
age : 99,
city : "XYZ"
}

所以我执行了以下步骤:

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);

前 3 行没有抛出任何错误,但是当我运行插入命令时,它抛出了错误。谁能告诉我出了什么问题。

提前致谢!!!

最佳答案

正在抛出错误,因为您无法更新 _id 字段

为了设置一个新的 id,首先你找到文档(使用 findOne,因为你只搜索 1 个文档),然后需要用新的 id 创建一个新文档并插入它,然后我们可以安全地删除旧的:

var doc = db.names.find_one({name:"Soham"});
doc._id = 111 ; 
db.names.insert(doc);
db.names.remove({_id:ObjectId("586d9d5d23352af1a4aa05f7")});

关于mongodb - 更新 MongoDB 中的 _id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41516527/

相关文章:

mongodb - Symfony2 MongoDB 原则继承

javascript - 如何自定义jquery-jtable创建对话框

sql-server-2005 - SQL Server 2005中插入行后的主键值

java - 奇怪的 SQLite 行为 - 非功能性 UPDATE SQLite 方法

php - 更新现有行而不是在 MySQL 中创建新行

MongoDB killOp() 没有终止操作。我该怎么办?

java - Mongodb更改文档字段名称

node.js - Mongoose 不创建文本索引

javascript - 使用 JavaScript、PHP、MySQL 自定义点赞数

java - 不满意的依赖异常 : Error creating bean with name "empController"