mongo 对删除节点remove OTHER

在MongoDB复制集中删除节点时,可能会遇到已删除节点无法读写的情况。这是因为旧的复制集配置信息仍然存在。解决这个问题需要拥有特定权限的用户,如`__system`角色的用户。通过创建该角色的用户,可以删除`local`库中的`system.replset`配置,从而清理节点,使其能用于新的复制集或集群架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在复制集之中,我们通常会有删除复制集节点的操作

其中一个很典型的场景就是,海量数据的跨机房无缝迁移。例如,A机房  有一主一从两节点复制集,现在要把数据迁移到  B机房,并做到过程耗时很短,同时迁移失败及时回滚还原直接的连接配置。

一般会将B机房一个节点作为A机房复制集的从节点,直到同步趋于一致之后,再将连接改成B机房的,但是此过程会有如下问题:

stage001:PRIMARY> rs.remove("10.18.19.207:27019")

{ "ok" : 1 }

stage001:OTHER> rs.slaveOk();

stage001:OTHER> show dbs

admin 0.000GB

braavos 2.385GB

cms 3.997GB

loanapp 0.000GB

local 4.178GB

morpheus 0.106GB

scportal 0.000GB

sns 0.001GB

stage001:OTHER> rs.status()

{

"state" : 10,

"stateStr" : "REMOVED",

"uptime" : 10444617,

"optime" : {

"ts" : Timestamp(1539832013, 1),

"t" : NumberLong(27)

},

"optimeDate" : ISODate("2018-10-18T03:06:53Z"),

"ok" : 0,

"errmsg" : "Our replica set config is invalid or we are not a member of it",

"code" : 93,

"codeName" :

使用mongoTemplate删除文档的方法有多种。在Java中,可以使用mongoTemplate的remove()方法来删除文档。例如,可以使用以下代码删除一个集合中的所有文档: ```java public void dropCollection(String collectionName) { // 查询表数据条数 Query query = new Query(); List<NationalPostPlatformUserVO> all = mongoTemplate.findAll(NationalPostPlatformUserVO.class); long count = all.size(); if (count > 0) { // 删除文档 mongoTemplate.remove(query, NationalPostPlatformUserVO.class); } } ``` 在MongoDB的shell中,可以使用remove()、deleteOne()、deleteMany()、findOneAndDelete()等方法来删除文档。例如,可以使用以下命令删除文档: ```shell db.collection.remove(query) ``` 其中,collection是集合的名称,query是删除文档的条件。 另外,在使用mongoTemplate进行查询时,可以使用find()方法查询多条文档,使用findOne()方法查询一条文档。例如,可以使用以下代码根据id查询版本信息: ```java Query query = new Query(); Criteria criteria = new Criteria(); criteria.and("id").is(id); query.addCriteria(criteria); AppPackageVersionInfo appPackageVersionInfo = mongoTemplate.findOne(query, AppPackageVersionInfo.class); ``` 以上是使用mongoTemplate删除文档的一些方法和示例。具体的使用方法可以根据实际情况进行调整。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [MongoTemplate增删改查,分页查询,去重查询,全表删除](https://blog.youkuaiyun.com/Ciel_Y/article/details/121626495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MongoDB学习笔记(十二)——删除文档](https://blog.youkuaiyun.com/qq_33206732/article/details/80050076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值