首页 数据库 MongoDB 如何更新 MongoDB 文档的 _id?

如何更新 MongoDB 文档的 _id?

Aug 31, 2023 pm 10:29 PM

如何更新 MongoDB 文档的 _id?

您无法更新它,但可以保存新 ID 并删除旧 ID。请按照一些步骤更新 MongoDB 的 _id。步骤如下:

第1步:第一步,需要将ObjectId存储到变量中。

anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
登录后复制

第2步:在第二步中,您需要设置一个新的id。

yourDeclaredVariableName._id=yourNewObjectIdValue;
登录后复制

第3步:在第三步中,您需要在文档中插入新的ID。

db.yourCollectionName.insert(yourDeclaredVariableName);
登录后复制

第4步:在第四步中,您需要删除旧的ID。

db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
登录后复制

为了理解上述步骤,让我们用文档创建一个集合。使用文档创建集合的查询如下:

> db.updateIdDemo.insertOne({"StudentName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfec6fd07954a4890683")
}
> db.updateIdDemo.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebff66fd07954a4890684")
}
> db.updateIdDemo.insertOne({"StudentName":"Maxwell"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ebfff6fd07954a4890685")
}
登录后复制

借助 find() 方法显示集合中的所有文档。查询如下:

> db.updateIdDemo.find().pretty();
登录后复制
登录后复制

以下是输出:

{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
登录后复制

以下是更新 MongoDB 文档 _id 的查询:

Step1:
> myId=db.updateIdDemo.findOne({_id:ObjectId("5c6ebfec6fd07954a4890683")});
{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }

Step 2:
> myId._id=ObjectId("5c6ebfec6fd07954a4890689");
ObjectId("5c6ebfec6fd07954a4890689")

Step 3:
> db.updateIdDemo.insert(myId);
WriteResult({ "nInserted" : 1 })

Step 4:
> db.updateIdDemo.remove({_id:ObjectId("5c6ebfec6fd07954a4890683")});
WriteResult({ "nRemoved" : 1 })
登录后复制

让我们检查 _id 是否已更新。借助 find() 方法显示集合中的所有文档:

> db.updateIdDemo.find().pretty();
登录后复制
登录后复制

以下是输出:

{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
{ "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
登录后复制

查看示例输出,“StudentName”:“Robert” 的 _id 已更改。

以上是如何更新 MongoDB 文档的 _id?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1415
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
mongodb怎么设置用户 mongodb怎么设置用户 Apr 12, 2025 am 08:51 AM

要设置 MongoDB 用户,请按照以下步骤操作:1. 连接到服务器并创建管理员用户。2. 创建要授予用户访问权限的数据库。3. 使用 createUser 命令创建用户并指定其角色和数据库访问权限。4. 使用 getUsers 命令检查创建的用户。5. 可选地设置其他权限或授予用户对特定集合的权限。

MongoDB vs. Oracle:为您的需求选择正确的数据库 MongoDB vs. Oracle:为您的需求选择正确的数据库 Apr 22, 2025 am 12:10 AM

MongoDB适合非结构化数据和高扩展性需求,Oracle适合需要严格数据一致性的场景。1.MongoDB灵活存储不同结构数据,适合社交媒体和物联网。2.Oracle结构化数据模型确保数据完整性,适用于金融交易。3.MongoDB通过分片横向扩展,Oracle通过RAC纵向扩展。4.MongoDB维护成本低,Oracle维护成本高但支持完善。

连接mongodb的工具有哪些 连接mongodb的工具有哪些 Apr 12, 2025 am 06:51 AM

连接MongoDB的工具主要有:1. MongoDB Shell,适用于快速查看数据和执行简单操作;2. 编程语言驱动程序(如PyMongo, MongoDB Java Driver, MongoDB Node.js Driver),适合应用开发,但需掌握其使用方法;3. GUI工具(如Robo 3T, Compass),提供图形化界面,方便初学者和快速数据查看。选择工具需考虑应用场景和技术栈,并注意连接字符串配置、权限管理及性能优化,如使用连接池和索引。

mongodb怎么处理事务 mongodb怎么处理事务 Apr 12, 2025 am 08:54 AM

MongoDB 中的事务处理提供了多文档事务、快照隔离和外部事务管理器等解决方案,以实现事务行为,确保多个操作作为一个原子单元执行,保证原子性和隔离性。适用于需要确保数据完整性、防止并发操作数据损坏或在分布式系统中实现原子性更新的应用程序。但其事务处理能力有限,仅适用于单个数据库实例,且多文档事务仅支持读取和写入操作,快照隔离不提供原子性保证,集成外部事务管理器也可能需要额外开发工作。

mongodb怎么启动 mongodb怎么启动 Apr 12, 2025 am 08:39 AM

要启动 MongoDB 服务器:在 Unix 系统中,运行 mongod 命令。在 Windows 系统中,运行 mongod.exe 命令。可选:使用 --dbpath、--port、--auth 或 --replSet 选项设置配置。使用 mongo 命令验证连接是否成功。

mongodb与redis怎么选择 mongodb与redis怎么选择 Apr 12, 2025 am 08:42 AM

根据应用程序需求选择 MongoDB 或 Redis:MongoDB 适用于存储复杂数据,Redis 适用于快速访问键值对和缓存。MongoDB 使用文档数据模型、提供持久化存储和可水平扩展;而 Redis 使用键值对数据模型、性能出色且具有成本效益。最终选择取决于应用程序的具体需求,如数据类型、性能要求、可扩展性和可靠性。

MongoDB与Oracle:数据建模和灵活性 MongoDB与Oracle:数据建模和灵活性 Apr 11, 2025 am 12:11 AM

MongoDB更适合处理非结构化数据和快速迭代,Oracle更适合需要严格数据一致性和复杂查询的场景。1.MongoDB的文档模型灵活,适合处理复杂数据结构。2.Oracle的关系模型严格,确保数据一致性和复杂查询性能。

MongoDB与关系型数据库的区别与应用场景 MongoDB与关系型数据库的区别与应用场景 Apr 12, 2025 am 06:33 AM

选择MongoDB还是关系型数据库取决于应用需求。1.关系型数据库(如MySQL)适合需要高数据完整性和一致性、数据结构固定的应用,例如银行系统;2.MongoDB等NoSQL数据库适合处理海量、非结构化或半结构化数据,对数据一致性要求不高的应用,例如社交媒体平台。最终选择需权衡利弊,根据实际情况决定,没有完美的数据库,只有最合适的数据库。

See all articles