Mongo DB ID字段-更新所有ID

时间:2019-06-22 09:20:54

标签: java mongodb

我确实知道mongo db接受12字节的十六进制字符。

但是我插入了以下内容作为ID

32位数字| 10位数字| 10位数字| 4位数字

为了便于理解,我在管道符号前后留了空格。

当我使用robo 3T查询时,我得到了结果

{"_id":"0002227536000222753700000000000000000000000000000000|1914455876|700002039271|3954"}

但是当我使用代码连接时,出现以下错误。

invalid hexadecimal representation of an ObjectId
  1. 如果ID必须是对象类型,那么它如何通过外壳而不是通过代码工作。
  2. 我有数百万条记录。有什么方法可以更新所有ID字段。转换为类型或截断为12个字节并转换为类型的类型。
  3. 如果代码可以接受,那么我在这里遗漏了什么。

请告诉我。

编辑:

我只是找到了编辑ID的JavaScript方法。但这很耗时。

function(doc){ 
var newId  = String.substring(doc._id,String.indexOf(doc._id, "|") + 1);
var oldId = doc._id;
doc._id = newId;
db.ARS_ENG.insert(doc);
db.ARS_ENG.remove({_id:oldId})
}

0 个答案:

没有答案